Online C Compiler
Открыть в компиляторе

Учебная версия на русском. Код и его вывод сохранены в исходном виде.

Високосный год на C

Применяйте григорианское правило делимости на 4, 100 и 400.

Открыть в компиляторе

Високосный год на C
Применяйте григорианское правило делимости на 4, 100 и 400.

Григорианский год високосный, если делится на 400 либо делится на 4, но не на 100. Исключение для столетий означает, что одной проверки кратности четырём недостаточно.

Остаток % проверяет делимость, а скобки делают условие понятнее. Проверьте успешность чтения года и определите допустимый диапазон входа.

Испытайте 2000, 1900, 2024 и 2023: они проверяют исключения для 400 и 100, обычный високосный и обычный невисокосный год. Не переносите правило на другие календари без оговорки.

Код 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;
}
Открыть в компиляторе

Ожидаемый вывод

--- 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)

Частые вопросы

Почему код и вывод остаются на английском?

Ключевые слова, идентификаторы и строки, проверяемые тестами, сохранены, чтобы не менять программу. Объяснения и элементы управления переведены.