• 締切済み

C言語の数値入力

C言語のプログラムで0~10未満や、30~60未満というのはどのように書けばよいのでしょうか? if文で使いたいのですが、わからなく困っています。

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

scanfでshort型を入力するには、 short i; scanf("%hd", &i); ですね。 あと、これは趣味の範疇かも知れませんが、 iが0以上10未満かどうかの判定は、 if (0 <= i && i < 10) と書いた方が直感的に分かりやすいかと思います。 逆に、0未満または10以上であれば、 if (i < 0 || 10 <= i) とすると分かりやすいですね。

noname#50176
noname#50176
回答No.3

※コードリストが説明用で表記割愛してしまいましたが実行可能コードリストは以下です。 int main(void){ short i; printf("数値?"); scanf("%d",&i); if (i>=0 && i<10) printf("%d は、0 以上 10 未満 です\n",i); else if (i>=30 && i<60) printf("%d は、30 以上 60 未満 です\n",i); else printf("%d は、0 未満 か 10 以上 且 30 未満 か 60 以上 です\n",i); return 0; }

noname#50176
noname#50176
回答No.2

<訂正> scanf("%d",i); は scanf("%d",&i); です、すみません。

noname#50176
noname#50176
回答No.1

・0~10未満(0,1,…9) ・30~60未満(30,31,…59) となるので、 short i; printf("数値?"); scanf("%d",i); if (i>=0 && i<10) printf("%d は、0 以上 10 未満 です\n); else if (i>=30 && i<60) printf("%d は、30 以上 60 未満 です\n); else printf("%d は、0 未満 か 10 以上 且 30 未満 か 60 以上 です\n); のようになります。 つまり、数値が格納されている変数 i がある時 n以上:i>=n (n も含む) n以下:i<=n (n も含む) n以降:i>n (n は含まない) n未満:i<n (n は含まない) です。

FairladyZ
質問者

お礼

迅速にご回答していただきありがとうございました。とても助かりました。

関連するQ&A