![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C言語の関数プログラムで、月を入力すると季節を表示する関数を作っているのですが、上手くいきません・・・。何か違うのでしょうか。
#include <stdio.h>
void month(int a)
{
switch(a)
{
case '3': case '4': case '5':
printf("春です。");
break;
case '6': case '7': case '8':
printf("夏です。");
break;
case '9': case '10': case '11':
printf("秋です。");
break;
case '12': case '1': case '2':
printf("冬です。");
break;
default:
printf("そのような月はありません。");
break;
}
}
int main(void)
{
int m;
printf("月を表示してください:");
scanf("%d",&m);
month(m);
return 0;
}
No.3ベストアンサー
- 回答日時:
month関数のcaseの記述に問題があるからです。
'1'のように、シングルクォートで数字を囲うと、
数字ではなく、ASCIIコードとして扱われます。
ASCIIコード
http://www.psl.ne.jp/perl/pdojo00b.html
つまり、case '1'はcase 0x31と書いたのと同じになります。
素直にシングルクォートを取り去って、
case 1:
のようにすればうまくゆくでしょう。
No.2
- 回答日時:
case '3' のように、int と char を比較しているからだけど、switch 文を使うのを止めましょう。
特に、fall through するようなプログラムを書いちゃダメ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語でAからZまでを表示する...
-
hit&bolwのプログラミングがで...
-
【C言語教えてください】sin波...
-
10個出力で改行したいのですが...
-
printf で二進表示を行いたい。
-
コンパイルエラーについて
-
error C2143: 構文エラー : ';'...
-
C言語に関する質問です
-
C言語 プログラミング
-
if文がコンパイルエラーを起こ...
-
C言語で入力した変数の値から三...
-
wsprintfの書式制御文字列につ...
-
ホームページをC言語で作りたい...
-
strcmp
-
分数を表示するプログラム(長...
-
4の倍数を論理演算で表す。。
-
英語小文字または大文字を入力...
-
unsigned int型について
-
コマンドラインに出力した文字...
-
C言語のヘッダーファイルの作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
strcmp
-
4の倍数を論理演算で表す。。
-
C言語での、年複利の計算方法...
-
C言語 プログラミング
-
scanfに文字が入力されたときに...
-
hit&bolwのプログラミングがで...
-
%P と %X の違い
-
unsigned int型について
-
printf( " %2d", p * q );
-
cshの文字列操作(0埋め)
-
改行について 1行に何個かづ...
-
8人分のテストの点数を入力し、...
-
入力したお金の金額からお札の...
-
三角形の判別
-
テキストカーソル位置の取得
おすすめ情報