我的程序基本上要求用户输入一个未定义数量的浮点数,我希望程序输出用户输入EOF时的最小值,最大值和值的平均值。C我如何打破EOF循环?
当前循环退出并输出最小值,最大值和当用户输入数字时的意思< = -100,000或=> 100,000,其中是程序对用户输入的限制。
#include <stdio.h>
int main()
{
float sum, smallest, largest;
float value, average,check;
int count;
sum = 0.000000;
count = 0;
check = scanf(" %f",&value);
smallest = value;
largest = value;
while (value >= -100000 && value <= 100000)
{
sum += value;
count++;
if (value > largest)
largest = value;
else if (value < smallest)
smallest = value;
scanf(" %f",&value);
}
average = sum/count;
printf("%.2f ",smallest);
printf("%.2f ",largest);
printf("%.2f\n",average);
return 0;
}
你不能简单地添加条件到你的while循环吗? 'while(value!= EOF && value> = -100000 && value <= 100000)' – Ben
scanf()有一个返回值。用它。 – wildplasser
@Ben除了'value'永远不会等于EOF(除非用户恰好输入了与OP平台上的常量值相等的东西)。应该检查'scanf'的返回值。 – szczurcio