閏年を判定してみよう
西暦を知ってその年が閏年かどうかは、「西暦年数が100の倍数のときは400で割れる年、100の倍数でないときは4で割り切れる年を閏年とし、その他を平年とする。」によって判定します。
導出過程に沿うと、「4で割り切れる年を閏年とし、さらに100で割り切れる年は平年に戻し、400で割り切れる年は再び閏年にする。」とも言えます。
cf. https://www.chugakujuken.com/koushi_blog/ooki/20170309.html
仕様
- 西暦(整数値)をキー入力で受付ける
- その年が閏年か平年かに応じて、「xxxx年は閏年です。」あるいは「xxxx年は平年です。」と画面に表示する
ちょっと横道へ
作成
- まず流れ図(フローチャート)を書く
- 閏年がどうかを判定する関数 int isleap( int y ); があるとして、
- 関数の仕様:西暦 y 年が閏年なら 真 を、平年なら 偽 を返す
- まず、それを呼び出すプログラムを考え、
- 次に、その関数について考えよ
- プログラムを作成する
- テストする
- 2000、2020、2021、2100等を入力してみよ
isleap関数をif文を1個で実現してみよ
複数の条件を同時に満たすという条件などは
論値演算子を使って記述できます。
例えば、aが正でかつbが正という条件は
if( a>0 && b>0 )
と書きます。
ちなみに、
if( (a>0) && (b>0) )と書かなくても良い理由は
演算子の優先順位によります。
- &&や||や!や()を駆使して、閏年の条件を表してみよう!