
#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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドラインに出力した文字...
-
switch分のケースを範囲数?に...
-
cshの文字列操作(0埋め)
-
C言語での数字の花形表示
-
C言語です このプログラミング...
-
printfの出力内の文字をdefine...
-
コンパイルエラーについて
-
現在時刻の表示について
-
C言語のプログラミングについて...
-
オーバーフローについて。
-
strcmp
-
文字と数字の判定について
-
C言語のソースをC++言語に変換...
-
カレンダーのプログラムについて
-
一番大きい奇数を表示する
-
int型 00 を表示するのに0とな...
-
10個出力で改行したいのですが...
-
WM_CLOSEで閉じれないウィンド...
-
値を変数に代入してprintfで表...
-
srand(time(NULL))の使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
CTRL+Dでループを抜けるには
-
Cプログラムについて
-
コマンドラインに出力した文字...
-
WM_CLOSEで閉じれないウィンド...
-
C言語の&に関する質問
-
すごろくに使用するサイコロ
-
文字と数字の判定について
-
printf( " %2d", p * q );
-
【C言語教えてください】sin波...
-
%P と %X の違い
-
C言語の勉強しています。すみま...
-
strcmp
-
c言語でAからZまでを表示する...
-
unsigned int型について
-
(C言語)めちゃくちゃな値にな...
-
printf で二進表示を行いたい。
-
プログラミング C言語 課題でプ...
-
c言語で2000年以降カレンダーを...
おすすめ情報