Edição didática em português. O código e suas saídas preservam o original.
Falta um ponto e vírgula em C
Revise a instrução anterior ao diagnóstico e diferencie terminadores de blocos.

A mensagem de ponto e vírgula esperado pode aparecer na linha posterior ao erro real. Revise declarações, atribuições e chamadas anteriores. Um bloco de função não leva ponto e vírgula após a chave final, mas uma declaração de struct precisa dele.
Não acrescente pontos e vírgulas ao acaso: um após if ou while pode criar uma instrução vazia e mudar o comportamento. Em for, os separadores internos fazem parte da sintaxe.
Confira também aspas, parênteses e comentários não fechados, que podem confundir a análise. Corrija o primeiro erro relevante e compile novamente antes de tratar todas as mensagens seguintes.
Código C
#include <stdio.h>
// FIXED 1: Semicolon added after struct definition
struct UserProfile {
int id;
char username[32];
};
int calculate_tax(int income) {
// FIXED 2: Semicolon added after variable assignment
int rate = 15;
return income * rate / 100;
}
int main(void) {
printf("=== Expected Semicolon Resolved ===\n");
struct UserProfile user = {1, "Alice Chen"};
printf("User ID: %d, Name: %s\n", user.id, user.username);
printf("Calculated Tax: $%d\n", calculate_tax(50000));
return 0;
}Abrir no compiladorSaída esperada
=== Expected Semicolon Resolved === User ID: 1, Name: Alice Chen Calculated Tax: $7500
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.