• ベストアンサー

swich文を使って・・・

swich文を使って、標準入力された数値を3で割った余りが 0のとき「hello world」 1のとき「こんにちわ」 2のとき「おつかれさまです」 と表示される、プログラムを作れ。 という問題なんですが、よく分かりません。 一応作ってみたんですが、違っているようです。。。 #include <stdio.h> void main(void) { int a,b,c,d; printf("数字を入力してください"); scanf("%d",&a); swich(a) { case 'b': printf("hello world",b=a%3==0); break; case 'c': printf("こんにちわ",c=a%3==0); break; case 'd': printf("おつかれさまです",d=a%3==0); break; } }

質問者が選んだベストアンサー

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

上記のプログラムでは  98を入れると"hello world"  99を入れると"こんにちわ"  100を入れると"おつかれさま"  上記以外の数値を入れても何も表示しません。 となってしまいます。 模範解答は #include <stdio.h> void main(void) {   int a ;   printf("数字を入力してください");   scanf("%d",&a);   swich( a%3 ){   case 0 :     printf("hello world");     break;   case 1:     printf("こんにちわ");     break;   case 2 :     printf("おつかれさまです");     break;   } } ですね。 switch caseやprintfの使われ方を見比べてみてください。

その他の回答 (1)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

swich文とは その指定したものが どれにあてはまるかで処理を分ける命令です。 だから swich(a) case 'b': などと した場合、 a='b' の時に処理をするという記述になります。 だから ここの swich(a) のところに swich(a%3) という記述を入れて case で それぞれのあまりのときの処理を入れればいいのです。

関連するQ&A