今日の人気記事

  1. サンプルプログラム集
  2. MinGW - gccのコンパイルと実行 - Windows環境
  3. MinGW - gcc のインストール - Windows環境
  4. MinGW - gcc の環境設定(パスを通す) - Windows環境
  5. MacでC言語 - コンパイラ(gcc)のインストール - Xcode - Command Line Tools

閏年(うるうどし)の判定

スポンサーリンク

閏年(うるうどし)を判定するサンプルプログラムを紹介します。

閏年

まずは閏年の定義を確認しておきましょう。

閏年といえば「4年に一度」と思われている方が多いと思いますが、少し違います(管理人は長い間、勘違いしていました……)。

正確には

  1. 西暦が「4」で割り切れる(あまりが0)年は閏年ですが
  2. 西暦が「100」で割り切れる年は閏年ではありません。
  3. ただし、西暦が「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年は閏年です。

このように適切に閏年かどうかが判定できていますね。

スポンサーリンク

関連記事と広告