Como rodar seu C
No Sublime (ou outro editor), crie um arquivo novo e salve com a extensão .c, por exemplo teste.c. Sem o .c o compilador não reconhece o arquivo.
Abra o terminal na pasta do arquivo e compile e rode:
gcc teste.c -o teste
./testeNo Windows (PowerShell ou CMD), roda com .\teste.exe. Se o compilador não mostrar nada, deu certo: em C, silêncio é bom sinal.
Como ler uma mensagem de erro: teste.c:5:7: error quer dizer arquivo teste.c, linha 5, coluna 7. Segmentation fault: o programa tentou acessar memória que não podia — quase sempre é recursão sem fim ou acesso fora do vetor.
Como o professor cobra
- Código completo do zero em C, com main, scanf e printf.
- Saída exata do jeito do enunciado, sem "Digite...".
- Contador de comparações, de trocas ou de chamadas recursivas.
- Rastro: printf mostrando o vetor a cada passo.
- Variação do que foi dado em aula: ordem decrescente, regra de desempate, dividir em três partes.
- Árvore de chamadas da recursão desenhada no papel.
- Simulação na mão de uma ou duas iterações do quick sort, escrevendo qual pivô escolheu (primeiro ou último).
- Dado um vetor, como ele fica depois de cada passada (1ª, 2ª...) em bubble, selection e insertion.
Erros que derrubam
| Erro | Certo |
|---|---|
| #include <stdio> | #include <stdio.h> |
| #include sem nada (o <stdio.h> some ao colar no Moodle) | conferir a linha 1 depois de colar |
| scanf("%d", x) | scanf("%d", &x) |
| scanf lendo na variável errada | o nome dentro do scanf é da variável que você quer preencher |
| if (a = b) | if (a == b) |
| while (i > n) pra percorrer | while (i < n) |
| /n | \n |
| printf("%d", v[i]) sem espaço | printf("%d ", v[i]) ou espaço antes do número |
| esquecer o ; no fim da linha | todo comando termina com ; |
| prinf, interala, retunr (nome digitado errado) | conferir o nome exato |
| chamar intercala com 3 argumentos | ela pede 4: v, ini, meio, fim |
| chave { sobrando ou faltando | cada { tem uma } |
| esquecer o i = i + 1 dentro do while | o loop nunca termina |
| esquecer de zerar o i = 0 antes do segundo while | ele começa de onde o primeiro parou |
| escrever o tipo na chamada: return 1 + int funcao(x) | o tipo só aparece ao criar a função: return 1 + funcao(x) |
| if (...); com ponto e vírgula colado | o ; termina o if vazio; tira ele |
| mandar main no Moodle quando o exercício tem tabela Test / Result | mandar só a função, o corretor coloca o main |
| Segmentation fault | recursão sem fim ou acesso fora do vetor |