• ベストアンサー

C言語

文を繰り返すときに、『続けますか(Y=続行。N=終了)』と表示して、Yが入力されたら文を繰り返すようにしたいのですが、わからないので教えてください。 #include<stdio.h> int main(void) { int m,s,r,num; char moji; num=1; do{ printf("距離を入力してください。\n"); scanf("%d",&m); printf("平均速度を入力してください。\n"); scanf("%d",&s); r=m/s; printf("所要時間は%dです。\n",r); printf("続けますか?(Y=続行。N=終了)\n");/*このあたりがどうすればいいのかわかりません*/ moji=getchar(); }while(num) printf("終了します。\n"); return 0; }

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

  • ベストアンサー
  • elttac
  • ベストアンサー率70% (592/839)
回答No.1

 終了しない(ループする)条件が「Y が入力されたか否か」ですから,do...while ループの条件が間違っていますね。  ループ条件は,「moji が Y だったら」ですから, } while (moji == 'Y') となります。小文字で入力されたことも考えて, } while (moji == 'Y' || moji == 'y') としましょう。「文字列」でなく「文字」の比較なので,単一引用符でくくる点も注意してください。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

まず主題と関係ないこととしては: ・num という変数は何をするのですか? ・距離や平均速度は int でいいんですか? ・getchar() の返り値は int であることに注意. ・やりたいことに対して, 何がどう「わからない」のですか? 主題については: ・「'Y' が入力されたら繰り返す」=「'Y' 以外が入力されたら終了」なので, 「'Y' 以外が入力されたら break」というだけのことでは?

関連するQ&A

専門家に質問してみよう