Edição didática em português. O código e suas saídas preservam o original.
Prática de programação em C
Avance de laços e arrays até recursão e listas com um método de testes reproduzível.

Comece com problemas pequenos: somar dígitos, contar elementos e percorrer uma string. Defina a entrada e a saída antes de escrever código. Teste um caso manualmente para confirmar que entendeu o enunciado.
Depois trabalhe com arrays, matrizes e busca. Diferencie o custo do algoritmo do custo de ler os dados. Na busca binária, verifique se o array está ordenado; em rotações, controle as dimensões.
Para praticar ponteiros, inverta uma lista encadeada e libere todos os nós. Para recursão, implemente Euclides e explique o caso base. Use as dicas depois de tentar uma solução própria e compare seu raciocínio com a explicação.
Os exercícios incluem testes automáticos. Preserve exatamente os rótulos de saída indicados, mesmo com o enunciado traduzido. Passar em um teste não prova que o programa está correto para toda entrada: acrescente limites, valores ausentes e casos mínimos.
Perguntas frequentes
Por que o código e a saída continuam em inglês?
Palavras-chave, identificadores e textos verificados pelos testes são preservados para não alterar o programa. As explicações e os controles estão traduzidos.