閏年のプログラム
C言語(閏年)の質問です。
任意の範囲の年から閏年の表示とその数をカウントして次の実行結果のように表示するプログラムの作成で途中まではわかって修正・追加する箇所があったら一緒に教えてください。(ここでは2つの年をmain関数内で入力し、その範囲の西暦を引数とする関数checkYearを使用するものとする。int型の関数checkYearは、引数に西暦をとり、その西暦が閏年であれば、1を返し、閏年でない場合は0を返す。)
なお、閏年の判定方法は以下のとおりである。
条件1 西暦年が4で割り切れる年は閏年である
条件2 条件1を満たしていても、西暦年が100で割り切れるときは閏年でない
条件3 条件2を満たしていても、西暦年が400で割り切れるならば閏年である
実行例1
西暦を入力:2000
西暦を入力:2009
2000年
2004年
2008年
閏年は3回あります。
実行例2
西暦を入力:2100
西暦を入力:2000
2000年
2004年
2008年
2012年
2016年
2020年
(省略)
2096年
閏年は25回あります。
実行例3
西暦を入力:2090
西暦を入力:2110
2092年
2096年
2104年
2108年
閏年は4回あります。
#include <iostream>
bool checkYear(int year);
int main()
{
int year;
int year2;
printf("西暦を入力:"); scanf("%d",year);
printf("西暦を入力:"); scanf("%d",year2);
int count = 0;
for (int i = year; i < year2; i++)
{
if (checkYear(i))
{
printf("%d年\n");
count++;
}
}
printf("閏年は%d回です。\n");
return 0;
}
bool checkYear(int year)
{
return (((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0);
}
お礼
まさに知りたかった内容です。スッキリしました。ありがとうございました。