Вот программа на языке 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;
}
Эта программа предлагает пользователю ввести год, а затем определяет, является ли он високосным годом, проверяя условия:
- Если год делится на 4, но не делится на 100, это високосный год.
- Если год делится на 400, это високосный год.
- Иначе это не високосный год.
Вот несколько альтернативных методов определения високосных лет в 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;
}