C言語で入力された年が閏年か判定するにはどうすればよいですか
C言語では、以下の方法を使って、年がうるう年かどうかを判定できます:
- 閏年は4で割り切れて100で割り切れない年、または400で割り切れる年とする。
- 4と100で割り切れるか、さらに400で割り切れるかを判定するには、剰余(モジュロ)演算子 % を利用する。
以下に例を示します。
#include <stdio.h>
int main() {
int year;
printf("请输入年份:");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
printf("%d年是闰年\n", year);
} else {
printf("%d年不是闰年\n", year);
}
return 0;
}
このサンプルでは、scanf関数を使用してユーザーから西暦を入力しています。その後に、もしその西暦が閏年かどうかを判定するためif文を使用しています。条件を満たした場合は閏年であるという情報を表示し、そうでない場合は閏年でないという情報を表示しています。
ここで注意すると、4で割り切れるが100で割り切れない場合と、400で割り切れる場合を同時に判定するため、論理演算子&&と||を組み合わせて判定条件を作ります。