プロが教える店舗&オフィスのセキュリティ対策術

文を繰り返すときに、『続けますか(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;

}

A 回答 (2件)

 終了しない(ループする)条件が「Y が入力されたか否か」ですから,do...while ループの条件が間違っていますね。


 ループ条件は,「moji が Y だったら」ですから,

} while (moji == 'Y')

となります。小文字で入力されたことも考えて,

} while (moji == 'Y' || moji == 'y')

としましょう。「文字列」でなく「文字」の比較なので,単一引用符でくくる点も注意してください。
    • good
    • 0

まず主題と関係ないこととしては:


・num という変数は何をするのですか?
・距離や平均速度は int でいいんですか?
・getchar() の返り値は int であることに注意.
・やりたいことに対して, 何がどう「わからない」のですか?

主題については:
・「'Y' が入力されたら繰り返す」=「'Y' 以外が入力されたら終了」なので,
「'Y' 以外が入力されたら break」というだけのことでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!