0

注: fflush(stdin) は機能しませんでした。

問題:
scanf (inb4 deprecated) を使用して while ループとして数値を入力しています。1 つ入力すると、バッファーは残りを空白行で埋めます。

コード:

double input, total;

for(i=0; i<COUNT; i++){
     printf("\nNumber %d: ", i+1);
     scanf("%d", &input);
     total += input;
}
printf("\nAverage: %f\n", total/COUNT);

出力:

Please enter 5 decimal numbers: 
Number 1: 1.0

Number 2: 
Number 3: 
Number 4: 
Number 5: 
Average: 0.000000
4

2 に答える 2

2
 if(scanf("%d", &input) != 1)
 {
      /* If scanf failed to read a number clear the input buffer */
      while((c = getchar()) != '\n' && c != EOF);
 }
于 2014-01-28T06:23:59.567 に答える
0

入力を取得する前に flushall() を使用してください

于 2014-01-28T06:17:44.597 に答える