我有一个while循环,允许用户输入由空格分隔的任意数量的数字,并且当用户输入0时,该程序应该在向用户显示最高数字时终止。

#include <stdio.h>

int main(){
  float fResult[100], fMax;
  int c = 1;
  while (fResult[c] != 0){
    scanf(" %f ", &fResult[c]);
    if (fResult[c] > fMax){
        fMax = fResult[c];
    }
    c = c + 1;
  }
  if (fResult[1]==0){
    printf("empty sequence");
  } else {
    printf("%.3f ", fMax);
  }
}


直到用户输入除负数以外的任何序列,它都可以正常工作。然后结果显示为0

例如,当用户输入-3 -4 -100 -5 0时,结果应为-3,但我得到的是0,从技术上讲,这是最大数量。
但是,如果用户输入0,不应该忽略while循环吗?

最佳答案

fMax初始化为读取的第一个值。无需将值保存在数组中。始终检查

09-30 11:17