今日の人気記事

  1. サンプルプログラム集
  2. 入力した2つの数値を交換する
  3. 文字 - char型
  4. 乱数 - 0〜1のランダムな数値を出力
  5. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)

閏年(うるうどし)を判定する

当ページのリンクには広告が含まれています。

スポンサーリンク

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

閏年

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

閏年といえば「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年は閏年です。

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

基本構文 の人気記事

  1. printf関数の変換指定子
  2. 条件演算子(3項演算子)「? :」
  3. while文 - 繰り返し処理
  4. 配列の要素を出力(表示)する
  5. #include <stdio.h> と printf 関数 - プログラムの基本
  6. 変数の値を出力 - printf 関数
  7. 四則演算 - 算術演算子
  8. 数値の桁揃え
  9. キーボードから入力した文字/文字列を配列に
  10. コンパイルと実行

関連記事(一部広告含む)