閏年(うるうどし)を判定する
当ページのリンクには広告が含まれています。
スポンサーリンク
閏年(うるうどし)を判定するサンプルプログラムを紹介します。
閏年
まずは閏年の定義を確認しておきましょう。
閏年といえば「4年に一度」と思われている方が多いと思いますが、少し違います(管理人は長い間、勘違いしていました……)。
正確には
- 西暦が「4」で割り切れる(あまりが0)年は閏年ですが
- 西暦が「100」で割り切れる年は閏年ではありません。
- ただし、西暦が「400」で割り切れる年は閏年。
です。『2. 西暦が「100」で割り切れる年は閏年ではない。』がポイントです。
そのため
1200年、1600年、2000年、2400年
閏年ですが、
1700年、1800年、1900年、2100年
は閏年ではありません。
閏年の定義を確認したら、次はサンプルプログラムをみてみましょう。
閏年の判定 - サンプルプログラム
入力した西暦が閏年かどうかを判定するサンプルプログラムです。
/* * C言語のサンプルプログラム - Webkaru * - 入力した西暦が閏年かを判断 - */ #include <stdio.h> int main(void){ /* 変数の宣言 */ int year; /* 西暦の入力 */ printf("西暦を入力してください = "); scanf("%d",&year); if(year%4 == 0) { if( year%100 == 0) { if ( year%400 == 0) { printf("%d年は閏年です。\n", year); } else { printf("%d年は閏年ではありません。\n", year); } } else { printf("%d年は閏年です。\n", year); } } else { printf("%d年は閏年ではありません。\n", year); } return 0; }
実行結果
いくつかの実行結果です。
西暦を入力してください = 1192 1192年は閏年です。
西暦を入力してください = 1200 1200年は閏年です。
西暦を入力してください = 1300 1300年は閏年ではありません。
西暦を入力してください = 1900 1900年は閏年ではありません。
西暦を入力してください = 2000 2000年は閏年です。
このように適切に閏年かどうかが判定できていますね。