
文を繰り返すときに、『続けますか(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;
}
No.1ベストアンサー
- 回答日時:
終了しない(ループする)条件が「Y が入力されたか否か」ですから,do...while ループの条件が間違っていますね。
ループ条件は,「moji が Y だったら」ですから,
} while (moji == 'Y')
となります。小文字で入力されたことも考えて,
} while (moji == 'Y' || moji == 'y')
としましょう。「文字列」でなく「文字」の比較なので,単一引用符でくくる点も注意してください。
No.2
- 回答日時:
まず主題と関係ないこととしては:
・num という変数は何をするのですか?
・距離や平均速度は int でいいんですか?
・getchar() の返り値は int であることに注意.
・やりたいことに対して, 何がどう「わからない」のですか?
主題については:
・「'Y' が入力されたら繰り返す」=「'Y' 以外が入力されたら終了」なので,
「'Y' 以外が入力されたら break」というだけのことでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
*をユーザーが入力した数字の数...
-
正負を反転させて出力するプロ...
-
C言語 逆ピラミッドの作り方
-
fgets関数とscanfについて
-
scanf関数について
-
数字以外が入力されたらエラー...
-
Eclipseコンソール表示を、リセ...
-
java初心者です。入力されたの...
-
電卓の小数点
-
"scanf"でエンターで改行させな...
-
VB カウントダウンタイマーの作...
-
Processingでのキーの同時入力
-
VisualStudio2019のコードアナ...
-
入力値が1以下、かつ数字以外の...
-
プログラミング python
-
C言語の文字列の長さを計算し表...
-
プログラムC言語の整数の約数に...
-
プログラムの進行が一時ストッ...
-
C言語scanf_sで何故か2回入力に...
-
VBでの日付入力値のフォーマッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
正負を反転させて出力するプロ...
-
Eclipseコンソール表示を、リセ...
-
scanfが2回使えない・・・?;
-
プログラミング初心者です。 Py...
-
C言語でgetchar();が上手く使え...
-
Excel VBAで、Application.Inpu...
-
電卓の小数点
-
cout関数を使っているのですが...
-
"scanf"でエンターで改行させな...
-
小数か整数かを判定する方法
-
至急教えてください!プログラ...
-
getchar()について 教えてくだ...
-
scanf が無視されます
-
batプログラム上で文字列を入力...
-
コマンドプロンプトからのEOFの...
-
IF文で戻ることはできますか?...
-
プログラミングの問題です 「金...
おすすめ情報