
皆様の知恵を貸してください!!
素数判定問題で、
「入力値が1以下、かつ数字以外の文字の場合、その旨
エラーメッセージとして表示&再入力させる」
という要求事項があるのですが…
/* キーボードからの入力を受け付ける */
scanf("%d", &number);
/**== 入力値をチェック ==**/
/* 入力値が1以下の場合、再入力を促す */
while(number <= 1)
{
printf("2以上の数を入力してください。\n");
}
/* 入力値が数字以外の文字の場合、再入力を促す */
while(★)
{
printf("数字を入力してください。\n");
}
上記ソースの★のところになんと入れて良いかわかりません!!
課題の提出が明日なので…。
大至急、教えてください。よろしくお願いします!

No.3ベストアンサー
- 回答日時:
#1の方の意見に賛成です。
それと、このソースは根本的に間違えています。
このままでは、無限ループになってしまいます。
書き換えると。。。
/* 目的の値が入力されるまで繰り返す */
while(1)
{
/* キーボードからの入力を受け付け */
scanf(XXX, YYYYYY);
/**== 入力値をチェック ==**/
if(数字であるか判定する条件)
{
if(2以上であるか判定する条件)
{
/* 入力値が1以下の場合のメッセージを表示 */
printf("2以上の数を入力してください。\n");
}
else
{
break;
}
}
else
{
/* 入力値が数字以外の文字の場合のメッセージを表示 */
printf("数字を入力してください。\n");
}
}
Aquarius172さん、回答ありがとうございます。
そうですよね、おかしいコードですよね。
投稿してから、あっ!と思いました・・・。
No.4
- 回答日時:
while文よりもdo while文の方が適してないですか?
まぁそれはおいておいて、scanfの返値を利用すれば数値以外が入力されたかどうか判定できますよ
この回答への補足
Bonjinさん、回答ありがとうございます。
do while文は使わないこと、という条件が
ありまして・・・。
scanfの返値を利用するとは・・・。
初心者名なものですみません。
詳しい説明をおねがいできますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
EDITコントロールで入力できる...
-
入力候補を表示させるには・・・?
-
getchar()について 教えてくだ...
-
Eclipseコンソール表示を、リセ...
-
java初心者です。入力されたの...
-
cout関数を使っているのですが...
-
C言語 atoi関数
-
プログラミング初心者です。 Py...
-
C言語
-
if文の条件にscanf関数を使うと…?
-
*をユーザーが入力した数字の数...
-
C言語 While文(ループ)内の...
-
C言語 逆ピラミッドの作り方
-
C++:cinが上手く使えない
-
C言語でのカレンダー作成
-
入力値が1以下、かつ数字以外の...
-
最早開始時間と最遅完了時刻を...
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
コマンドプロンプトからのEOFの...
-
4桁の数字以外を入力したらエラ...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
"scanf"でエンターで改行させな...
-
cout関数を使っているのですが...
-
プログラミングの問題です 「金...
-
scanf関数について
-
Userformの入力順序をタブオー...
-
C言語でgetchar();が上手く使え...
-
プログラムの実行時に'<'でリダ...
-
C言語初心者です。ファイルの読...
-
scanf が無視されます
-
実行結果の順番がおかしいんで...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報