• ベストアンサー

このプログラムの問題点を教えてください。

いつもお世話になっております。 また質問させていただきます。 あるサイトの課題を自分なりにやってみました。 問題文 クイズを3題出題し、ユーザの解答に応える(「正解」とか「不正解」とか言う)プログラムを書いてください。   クイズは何でもかまいません。 それで作ってみたプログラムがこれです。 #include <stdio.h> int main(void){ int x,y; printf("1234\n"); scanf("%d",&x); switch(x){ case 0: return 0; case1: printf("hgfhgfhsa\n"); break; case2: printf("hjtuyer\n"); break; case3: printf("uytcbbvxbn\n"); break; case4: printf("oiu68fgfd\n"); break; } while(1){ printf("haydhgfsjd?\n"); printf("1,kukakaka 2,hihihi 3,yayay\n"); scanf("%d",&y); if(y == 1){ printf("763827648327ue\n"); break; } else if(y == 2){ printf("menndokusai\n"); break; } なんとかコンパイルができました。本当は3問問題を書かなければいけないのですが2問目が終わって確認の意味でコンパイルしました。 それで実行してみたところ、1問目の答えが出ませんでした。自分でも理由がわかりません。 なので皆様に問題点を指摘してほしいのです。 へんな質問ですがよろしくおねがいします。

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

  • ベストアンサー
  • yukimican
  • ベストアンサー率70% (112/159)
回答No.3

#2です。 > すみませんがログを出力する文とはどんな文でしょうか? 自分でわかるなら何でも良いです。 というか、既にcase文の中でされている方法ですよ。 case 1:を通るはずなのにその箇所のprintf出力がないなら その判定文の周辺に問題があるってわかりますよね?

dfksh
質問者

お礼

ありがとうございました。 これから試していきます!

その他の回答 (2)

  • yukimican
  • ベストアンサー率70% (112/159)
回答No.2

× case1: ○ case 1: もしデバッガを使えるなら、ステップ実行で進めていけば わかったと思います。 デバッガ?ステップ実行?何ですかそれ?という場合は 何かの処理の後でprintfでログを出力する文を追加して、 どこを通っているか、変数の値は何か?というのを 確認しながらプログラムを組むと良いですよ。

dfksh
質問者

お礼

ありがとうございました。 すみませんがログを出力する文とはどんな文でしょうか? すみません。初心者なのでどうぞよろしくおねがいします。

noname#22058
noname#22058
回答No.1

> なんとかコンパイルができました。 本当ですか?ソースコードをそのまま貼り付けて コンパイルしようとしましたが、} の数が合わないなどの エラーが出ました。 コンパイルエラーが出ないソースを貼り付けてください。

dfksh
質問者

お礼

すみません。コピペするとき、失敗していました。 正しいプログラムはこれです。 #include <stdio.h> int main(void){ int x,y; printf("1234\n"); scanf("%d",&x); switch(x){ case 0: return 0; case1: printf("hgfhgfhsa\n"); break; case2: printf("hjtuyer\n"); break; case3: printf("uytcbbvxbn\n"); break; case4: printf("oiu68fgfd\n"); break; } while(1){ printf("haydhgfsjd?\n"); printf("1,kukakaka 2,hihihi 3,yayay\n"); scanf("%d",&y); if(y == 1){ printf("763827648327ue\n"); break; } else if(y == 2){ printf("menndokusai\n"); break; } else if(y == 3){ printf("haxaxa\n"); break; } else{ printf("やりなおーし\n"); } } return 0; } return 0;などが抜けていました。 もう一度よろしくおねがいします。

関連するQ&A

専門家に質問してみよう