#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
switch(a)
{
case 1: printf("\nりんご\n"); break;
case 2: printf("\nバナナ\n"); break;
default: printf("\nその他\n"); break;
}
return 0;
}
C言語でプログラム練習しています
上の内容で正常に動くのですが
caseのところを例えば
1~10までは りんご
11~30までは バナナ
など1つの数字ではなく複数の数字にしたいのですがどうすればいいのでしょうか?
以前VBを少し経験したことがありまして
その際は
case 1 to 10
でできたのですがC言語ではできないみたいです
わかる方教えてください
No.1ベストアンサー
- 回答日時:
1から5がバナナ、6から10がりんご としたい場合
switch( a ) {
case 1:
case 2:
case 3:
case 4:
case 5:
printf("バナナ\n" );
break;
case 6:
case 7:
case 8:
case 9:
case 10:
printf("りんご\n");
break;
}
といった具合にしてやればいいですよ
飛んだ値でも可能です
1,3,5がバナナ 2,4,6がりんごならば
switch( a ) {
case 1:
case 3:
case 5:
printf("バナナ\n" );
break;
case 2:
case 4:
case 6:
printf("りんご\n");
break;
}
といった具合にします
caseを連続して記述して breakを最後のブロックだけに記述します
No.6
- 回答日時:
#define MAX 50
int table[MAX + 1] = {
0, /* ダミー */
1,1,1,1,1,1,1,1,1,1, /* 1~10りんご */
2,2,2,2,2,2,2,2,2,2, /* 11~30ばなな */
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,4,4,4,4,4, /* 31~35みかん、36~40なし */
5,5,5,5,5,5,5,5,5,5 /* 41~50ぶどう */
};
/* aは1~50 */
switch(table[a]) {
case 1:
りんご
break;
case 2:
ばなな
break;
case 3:
みかん
break;
case 4:
なし
break;
case 5:
ぶどう
break;
}
No.4
- 回答日時:
#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
switch(cnvNo(a))
{
case 1: printf("\nりんご\n"); break;
case 2: printf("\nバナナ\n"); break;
default: printf("\nその他\n"); break;
}
return 0;
}
int cnvNo(int a)
{
if ((a >= 1) && (a <= 10))
{
return(1);
} else if ((a >= 11) && (a <= 30)) {
return(2);
}
return(-1);
}
No.3
- 回答日時:
#include <stdio.h>
int main(void)
{
int i;
for(i = 0; i < 40; ++ i){
switch((1 <= i && i <= 30) + (11 <= i && i <= 30)){
case 1: printf("%2d りんご\n", i); break;
case 2: printf("%2d バナナ\n", i); break;
default: printf("%2d その他\n", i); break;
}
}
return 0;
}
No.2
- 回答日時:
case 1:
case 2:
~
case 10:printf ("...");break;
のようにbreakしなければ求めてることは可能でしょう
長くなるようならif else使った方が見やすいと思います
お薦めはしませんがgcc拡張ではcase 0 ... 10のような書き方が可能です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
switch の範囲指定
C言語・C++・C#
-
switch()文で値の大小比較
PHP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cshの文字列操作(0埋め)
-
プログラミング C言語 課題でプ...
-
4の倍数を論理演算で表す。。
-
テキストカーソル位置の取得
-
printf で二進表示を行いたい。
-
C言語の勉強しています。すみま...
-
getcharの連続について
-
C言語で四則演算を使って結果が...
-
printfの出力内の文字をdefine...
-
printf( " %2d", p * q );
-
error C2143: 構文エラー : ';'...
-
コンパイルエラーについて
-
台形の面積を求めるプログラム
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
Cプログラムについて
-
c言語 成績表示のプログラムで...
-
C言語での数字の花形表示
-
ワイド文字をプロンプトに表示...
-
C言語で連立一次方程式
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンパイルエラーについて
-
printf で二進表示を行いたい。
-
c言語でAからZまでを表示する...
-
テキストカーソル位置の取得
-
4の倍数を論理演算で表す。。
-
cshの文字列操作(0埋め)
-
【C言語教えてください】sin波...
-
10個出力で改行したいのですが...
-
wsprintfの書式制御文字列につ...
-
error C2143: 構文エラー : ';'...
-
printfの出力内の文字をdefine...
-
%P と %X の違い
-
C言語
-
strcmp
-
(C言語)めちゃくちゃな値にな...
-
コマンドラインに出力した文字...
-
スレッドとメッセージキューに...
-
printf( " %2d", p * q );
-
Visual Sutdio 2017 でのC言語...
-
defineで定数が置き換えられな...
おすすめ情報