【发布时间】:2016-10-16 22:38:28
【问题描述】:
我有一个 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循环吗?
【问题讨论】:
-
你永远不会检查
scanf是否真的成功。 -
while (fResult[c] != 0)你还没有输入任何数据到fResult -
你还没有初始化fMax
标签: c while-loop