ツェラーの公式を使い、年、月、日にちから曜日を表示するプログラムを作りました。
#include<stdio.h>
main()
{
int y,m,d,x,z;
printf("年、月、日にちの順に入力してください→");
scanf("%d%d%d",&y,&m,&d);
if(m<2){
m=m+12;
y=y-1;
}
x=y+y/4-y/100+y/400+(13*m+8)/5+d;
z=x%7;
switch(z){
case 0:
printf("日曜日\n");
break;
case 1:
printf("月曜日\n");
break;
case 2:
printf("火曜日\n");
break;
case 3:
printf("水曜日\n");
break;
case 4:
printf("木曜日\n");
break;
case 5:
printf("金曜日\n");
break;
case 6:
printf("土曜日\n");
break;
}
}
これを基本に、1582年10月5日以前の入力があったとき「エラー」と表示するにはどうすればいいですか?
解答お願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
単純に考えるなら
if(y < 1582 ||
(m <= 1582 && m < 10) ||
(m <= 1582 && m <= 10 && d <= 5)
)
{
printf("エラー\n");
goto _END;
}
switch(z){
.
.
.
}
_END:
}
でよいのでは?
後続の処理がたくさんあってgotoを使いたくないなら、ネストが深くなるけど追加したif文のelseで既存の処理を書くとか。
No.2
- 回答日時:
>これを基本に、1582年10月5日以前の入力があったとき「エラー」と表示するにはどうすればいいですか?
以前「だけ」のチェックでしたら、
if( ( y * 10000 + m * 100 + d ) <= 15821005 ){
printf( "エラー\n" );
return( 255 );
}
これでよろしいのでは・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) ワークシートチェンジで曜日を表示する方法 1 2023/03/04 21:51
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
error C2143: 構文エラー : ';'...
-
hit&bolwのプログラミングがで...
-
困ってます!Cプログラミングに...
-
万年カレンダーのC言語プログラ...
-
C言語での、年複利の計算方法...
-
(C言語)めちゃくちゃな値にな...
-
ヘロンの公式を作ったプルグラ...
-
ブラックジャック
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
平均合計偏差値標準偏差の出し方
-
C言語
-
関数について
-
printf()文の書式
-
C言語で四則演算を使って10を作...
-
if文がコンパイルエラーを起こ...
-
scanfで正しい値を入力できない
-
DOS画面でテキストカーソルの位...
-
C言語で、「自然数nを入力し、n...
-
2進数の乗算と除算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報