Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語(while構文))

C言語のwhile構文とscanf()を使ったプログラムの改善方法

このQ&Aのポイント
  • C言語のwhile構文とscanf()を使って、入力された整数値が負の数でない限り繰り返し処理を行うプログラムを作成する方法について教えてください。
  • 提示されたコードでは、getch()関数を使用して文字を入力し、'e'が入力されるまで繰り返し処理が行われます。しかし、getch()の代わりにscanf()を使用して正の整数値を入力させ、負の数が入力されたら終了するプログラムを作りたいです。
  • プログラムの改善方法を教えてください。

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

int n = 0; ・ ・ ・ while( n < 0 ) { ・ ・ ・ scanf(%d, &n) } ・ ・ かな? ただし、scanfを使うと文字の入力を待つわけではないので、長い文字列なども入力できてしまいます。こんなことをされるとプログラムが異常終了するの本当は使わないほうがいいんですけどね。 たとえば、 1 1 1 1 1 1 1 1 1 1 1 1 -1 こんな入力されたらどうなるか試してみてください。 あとは、eを入れたら終わるって文章を直すってところですかね? #いきなり補足もお礼も書かずに質問閉じるのはマナー違反ですね。 折角アドバイスしてるんですよ。今回の質問をそのまま補足に書いていただければ問題ないのに。

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

関連するQ&A