演習16-3

【問1】

次の手順に従って、年月日を入力すると曜日を返却する関数を作成しなさい。

ただし、曜日の宣言には「enum」を用いること。

[メイン関数]

処理:

  1. 西暦、年、月をキーボードから入力する。
  2. 曜日取得関数を CALL して曜日を求める。
  3. 求めた曜日を表示する。
[曜日取得関数]

関数名:youbi

引数:

返却値:int /* 曜日 0:日 1:月 2:火 3:水 4:木 5:金 6:土 */

処理:

  1. 西暦 y年 m月 d日が何曜日であるかは、Zeller の公式により求めることができる。
    w = ( 5y / 4 - y / 100 + y / 400 + ( 26m + 16 ) / 10 + d ) % 7

    但し、1月と 2月は、前年の 13月と 14月として計算する必要がある。

    すなわち、2000年2月某日であれば、1999年 14月某日として Zeller の公式を使用しないと正しい結果が得られない。

  2. 求めた曜日を返却する。
実行結果例

西暦を入力しなさい 2000
月を入力しなさい 8
日を入力しなさい 9
2000年8月9日は水曜日です


 緑字はキーボードからの入力

解答例戻る


banner初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved