Edição didática em português. O código e suas saídas preservam o original.
Ano bissexto em C
Combine divisibilidade por 4, 100 e 400 para aplicar a regra gregoriana.

Um ano gregoriano é bissexto se for divisível por 400, ou se for divisível por 4 mas não por 100. A exceção dos séculos impede que baste verificar o múltiplo de quatro.
Use o resto % para verificar divisibilidade e parênteses para expressar claramente a condição. Valide a leitura do ano e defina a faixa de anos aceita pelo programa.
Teste 2000, 1900, 2024 e 2023: cobrem a exceção de 400, a de 100, um bissexto comum e um ano não bissexto. Não aplique essa regra a outros calendários sem esclarecimento.
Código C
#include <stdio.h>
#include <stdbool.h>
bool is_leap_year(int year) {
// Condition: (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)
if (year % 400 == 0) {
return true;
} else if (year % 100 == 0) {
return false;
} else if (year % 4 == 0) {
return true;
}
return false;
}
int main(void) {
int test_years[] = {1900, 2000, 2020, 2024, 2025, 2028, 2100};
int count = sizeof(test_years) / sizeof(test_years[0]);
printf("--- Leap Year Validation Summary ---\n");
for (int i = 0; i < count; i++) {
int yr = test_years[i];
printf("Year %d: %s\n", yr, is_leap_year(yr) ? "LEAP YEAR (366 days)" : "Common Year (365 days)");
}
return 0;
}Abrir no compiladorSaída esperada
--- Leap Year Validation Summary --- Year 1900: Common Year (365 days) Year 2000: LEAP YEAR (366 days) Year 2020: LEAP YEAR (366 days) Year 2024: LEAP YEAR (366 days) Year 2025: Common Year (365 days) Year 2028: LEAP YEAR (366 days) Year 2100: Common Year (365 days)
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.