Программа C для определения високосного года | Несколько методов расчета високосного года

Вот программа на языке C, определяющая, является ли год високосным:

#include <stdio.h>
int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        printf("%d is a leap year.", year);
    } else {
        printf("%d is not a leap year.", year);
    }
    return 0;
}

Эта программа предлагает пользователю ввести год, а затем определяет, является ли он високосным годом, проверяя условия:

  1. Если год делится на 4, но не делится на 100, это високосный год.
  2. Если год делится на 400, это високосный год.
  3. Иначе это не високосный год.

Вот несколько альтернативных методов определения високосных лет в C:

Метод 1. Использование тернарного оператора

#include <stdio.h>
int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);
    int isLeap = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 1 : 0;
    if (isLeap) {
        printf("%d is a leap year.", year);
    } else {
        printf("%d is not a leap year.", year);
    }
    return 0;
}

Метод 2. Использование оператора switch

#include <stdio.h>
int main() {
    int year;
    printf("Enter a year: ");
    scanf("%d", &year);
    int isLeap = 0;
    switch (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        case 1:
            isLeap = 1;
            break;
        case 0:
            isLeap = 0;
            break;
    }
    if (isLeap) {
        printf("%d is a leap year.", year);
    } else {
        printf("%d is not a leap year.", year);
    }
    return 0;
}