• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:if文での条件分岐について)

if文での条件分岐について

このQ&Aのポイント
  • 入力された数字が1以上10以下の整数の数字だった場合、次の処理へ移るプログラムを作成したいですが、小数が入力された場合にエラー表示が出力されるように修正したいです。
  • 2.2を入力すると無限ループに陥ってしまいます。Win XPでボーランドのフリーコンパイラを使用しています。
  • ne_buy関数では、ユーザーに購入枚数を入力してもらい、入力された数字が1以上10以下の整数の場合は、ne_get関数を実行します。それ以外の場合は、ne_display_error関数を呼び出します。

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

  • ベストアンサー
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

scanf で入力を受け取るときに文字列で受け取って、strtol で int に変換するのが普通かな。

noname#89227
質問者

お礼

>strtol で int に変換 そういう技があったのですか。分かりました。 どうもご回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

  #include <stdio.h> int main(void) { int n; printf("Number=>"); if(scanf("%d", &n) != 1 || getchar() != '\n') puts("Error"); else if(n < 0 || 10 < n) puts("Out of range"); else puts("OK"); return 0; }  

noname#89227
質問者

お礼

ご回答ありがとうございます。 早速修正したいと思います。

すると、全ての回答が全文表示されます。

関連するQ&A