※ ChatGPTを利用し、要約された質問です(原文:if文での条件分岐について)
if文での条件分岐について
このQ&Aのポイント
入力された数字が1以上10以下の整数の数字だった場合、次の処理へ移るプログラムを作成したいですが、小数が入力された場合にエラー表示が出力されるように修正したいです。
2.2を入力すると無限ループに陥ってしまいます。Win XPでボーランドのフリーコンパイラを使用しています。
ne_buy関数では、ユーザーに購入枚数を入力してもらい、入力された数字が1以上10以下の整数の場合は、ne_get関数を実行します。それ以外の場合は、ne_display_error関数を呼び出します。
いつも大変お世話になっております。
入力された数字が1以上10以下の整数の数字だったら、次の処理へ移るようにプログラムを作成したいのですが、ちょっと困ってます。
例えばこの時、"2.2"のような小数を入力した場合、一応条件は満たしているのですが、整数ではないので、エラー表示が出力されるようにしたいのですが、以下のソースをどう修正すればよろしいでしょうか?ご教授願います。
ちなみに2.2を入力すると無限ループに陥いってしまいます。
また、OSはWin XPでコンパイラは、ボーランドのフリーコンパイラを使用しています。
ne_buy()
{
auto int a;
printf("\n");
printf("購入枚数入力 (注)10枚まで\n");
printf("INPUT ==>");
scanf("%d",&a);
/*1以上10以下の場合*/
if( a >= 1 && a <= 10)
{
ne_get();
}
/*1未満及び10を超える数字の場合*/
else{
ne_display_error();
}
return 0;
}
お礼
>strtol で int に変換 そういう技があったのですか。分かりました。 どうもご回答ありがとうございました。