授業/C言語基礎/if文/練習問題/03A-3 のバックアップ(No.1)


問題文

次の空欄部分を補って、変数 y の値が西暦のうるう年かどうかを調べて出力するプログラムを完成させよ。 なお、うるう年は次のように決められる。

  • 4で割り切れる年はうるう年である。
  • ただし、100で割り切れる年はうるう年ではない。
  • ただし、400で割り切れる年はうるう年である。
#include <stdio.h>

int main(void) {
  int y = 2016;
  if (y % 400 == 0 || y % 4 == 0 && y % 100 > 0) {
    printf("西暦%d年はうるう年です\n", y);
  } else {
    printf("西暦%d年はうるう年ではありません\n", y);
  }
  return 0;
}

また、変数の y の初期値を 2000, 2015, 2016, 2017, 2100 と変えて実行し、結果を確認せよ。

ヒント: 2000年、2016年はうるう年であるが、2015年、2017年、2100年はうるう年ではない。

解答例

#include <stdio.h>

int main(void) {
  int y = 2016;
  if ((y % 400 == 0) || ((y % 4 == 0) && (y % 100 > 0))) {
    printf("西暦%d年はうるう年です\n", y);
  } else {
    printf("西暦%d年はうるう年ではありません\n", y);
  }
  return 0;
}
トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS