Compilador e depurador C online

Compile e depure C com pontos de interrupção, variáveis e controles GDB no modo Servidor.

Bibliotecas pré-instaladas
🚀 1,301,876 execuções totais (29,306 este mês)
Incorporar
Saída

Pratique C++ com desafios de código

Resolva problemas práticos direto neste editor: rode os testes de exemplo, envie sua solução e receba uma revisão de código por IA.

Todos os desafios de C++
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Você vai aprender AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Distance Between Points

Compute the straight-line distance between two points.

Você vai aprender Teorema de PitágorasRaízes quadradas
BeginnerFunctionsLearning-pathmath
Fácil

Average of Three

Average three whole numbers.

Você vai aprender AritméticaDivisão
BeginnerLearning-pathVariables
Fácil

Dias em um Mês

Retorne quantos dias tem um mês, incluindo anos bissextos.

Você vai aprender Regras do calendárioFunções auxiliares
BeginnerConditionsFunctionsLearning-path
Fácil

Produto escalar de dois vetores

Multiplique dois vetores elemento a elemento e some os resultados, a operação central de todo neurônio.

Você vai aprender VetoresProduto escalar
Redes neuraisaiaprendizado de máquina
Fácil

Verificação de Número Primo

Decida se um número é primo.

Você vai aprender DivisibilidadeOtimizar laços
BeginnerLoopsNumbersStudent-beginner
Fácil

Número de Armstrong

Verifique se um número é igual à soma de seus dígitos elevados à quantidade de dígitos.

Você vai aprender Extrair dígitosPotências
BeginnerNumbersStudent-beginner
Fácil

Largest of Three

Pick the largest of three numbers without a built-in max.

Você vai aprender ComparaçõesCombinar condições
BeginnerConditionsLearning-path
Fácil

Number Triangle

Build a triangle of increasing numbers.

Você vai aprender Linhas crescentesContador entre linhas
BeginnerLearning-pathNested-loopsPatterns
Fácil

Row Sums

Add up every row of a grid.

Você vai aprender Listas 2DLaços aninhados
BeginnerGridsLearning-path
Fácil

Sum of Odd Numbers

Add every odd number up to a limit.

Você vai aprender Laços forAcumuladores
BeginnerLearning-pathLoops
Fácil

Lista de tarefas

Mantenha uma lista de tarefas: adicione, marque como feitas, remova e informe o que ainda está pendente.

Você vai aprender Coleções tipadasRecords
BeginnerSimulationStrings

🧩 Sobre este executor de C online

O CodeUtility C Executor permite escrever e executar programas em C diretamente no seu navegador - sem instalação ou configuração de compilador. Ele é alimentado por um sandbox seguro que suporta padrões reais de C, incluindo C89, C99, C11 e a versão mais recente.

Esta ferramenta usa um compilador C real rodando na nuvem para compilar e executar seu código como em um ambiente nativo. Você pode facilmente testar trechos, aprender a sintaxe ou praticar a escrita de programas completos com entrada e saída.

Foi projetado para ajudar estudantes e desenvolvedores a experimentar rapidamente os fundamentos de C - como tipos de dados, ponteiros, laços, funções, arrays e estruturas - sem precisar instalar nenhum compilador ou IDE.

Mais do que um executor de código

Use no mesmo executor um editor de vários arquivos, um terminal de execução isolado, bibliotecas específicas do ambiente, espaços de trabalho persistentes, compartilhamento e colaboração em tempo real.

Como usar este executor?

Escolha um ambiente de execução, abra ou crie um arquivo, escreva o código e selecione Executar. A saída aparece no terminal; usuários conectados podem manter arquivos em um espaço de trabalho, instalar bibliotecas e colaborar por meio de compartilhamentos.

  1. Selecione uma versão e edite o arquivo atual ou abra outro arquivo do espaço de trabalho.
  2. Execute o código, forneça dados no terminal quando solicitado e consulte o histórico de execuções salvo.
  3. Use bibliotecas, ferramentas do espaço de trabalho, compartilhamento e chat quando a tarefa exigir mais de um trecho de código.

💡 Noções básicas de C e exemplos que você pode testar acima

1. Declarando variáveis e constantes

C exige que você declare o tipo de cada variável. Use #define ou const para definir valores somente leitura.

int age = 30;
double pi = 3.14159;
char grade = 'A';
char name[] = "Alice";
bool isActive = 1; // verdadeiro

// Constantes
#define MAX_USERS 100
const char* COMPANY = "CodeUtility";

2. Condicionais (if / switch)

Use if, else if e switch para tomada de decisão.

int x = 2;
if (x == 1) {
    printf("Um\n");
} else if (x == 2) {
    printf("Dois\n");
} else {
    printf("Outro\n");
}

switch (x) {
    case 1:
        printf("Um\n");
        break;
    case 2:
        printf("Dois\n");
        break;
    default:
        printf("Outro\n");
}

3. Laços

Use for, while e do-while para repetição.

for (int i = 0; i < 3; i++) {
    printf("%d\n", i);
}

int n = 3;
while (n > 0) {
    printf("%d\n", n);
    n--;
}

4. Arrays

Arrays armazenam vários elementos do mesmo tipo.

int numbers[3] = {10, 20, 30};
printf("%d\n", numbers[1]);

5. Structs

struct permite agrupar dados relacionados.

struct Person {
    char name[50];
    int age;
};

struct Person p = {"Alice", 30};
printf("%s tem %d anos\n", p.name, p.age);

6. Entrada/Saída no console

Use printf e scanf para E/S no console.

char name[50];
printf("Digite seu nome: ");
scanf("%s", name);
printf("Olá, %s\n", name);

7. Funções

Funções encapsulam lógica reutilizável. Declare tipo de retorno, nome e parâmetros.

int add(int a, int b) {
    return a + b;
}

printf("%d\n", add(3, 4));

8. Ponteiros

Use ponteiros para armazenar endereços de memória e manipular dados indiretamente.

int x = 10;
int* ptr = &x;

printf("Valor de x: %d\n", x);
printf("Endereço de x: %p\n", ptr);
printf("Valor via ponteiro: %d\n", *ptr);

*ptr = 20;
printf("x atualizado: %d\n", x);

9. E/S de arquivo

Use fopen, fprintf, fscanf e fclose para operações com arquivos.

FILE* file = fopen("file.txt", "w");
fprintf(file, "Olá, arquivo");
fclose(file);

char line[100];
file = fopen("file.txt", "r");
fgets(line, sizeof(line), file);
printf("%s", line);
fclose(file);

10. Manipulação de strings

Use funções de <string.h> como strlen, strcpy e strcmp.

#include <string.h>

char text[] = "Hello";
char copy[10];

strcpy(copy, text);
printf("Comprimento: %lu\n", strlen(copy));
printf("Comparação: %d\n", strcmp(copy, "Hello"));

11. Memória dinâmica

Use malloc e free para alocação no heap.

int* nums = (int*) malloc(3 * sizeof(int));
nums[0] = 1; nums[1] = 2; nums[2] = 3;

for (int i = 0; i < 3; i++) {
    printf("%d ", nums[i]);
}

free(nums);

🐞 Como depurar código %{language} online

Use o depurador %{language} online para encontrar erros de execução e lógica sem instalar compilador ou IDE. O modo Servidor compila com símbolos de depuração e executa o programa no GDB.

  1. Defina pontos de interrupção ao lado dos números de linha.
  2. Selecione Depurar para compilar e pausar no primeiro ponto correspondente.
  3. Inspecione a linha, a pilha de chamadas e as variáveis.
  4. Use Continuar, Passar por cima, Entrar ou Sair.
  5. Selecione Parar para encerrar a sessão.

Comece com um exemplo reproduzível e coloque o ponto de interrupção antes do comportamento inesperado.