【发布时间】:2013-09-07 03:06:02
【问题描述】:
这个程序只从用户那里得到 5 个号码然后 将它们存储在一个数组中。获取输入数字的最小值、最大值和平均值。这是我制作的代码:
#include <stdio.h>
#include <conio.h>
int main()
{
int num[5];
int min, max=0;
int counter;
float average, total;
max = num[0];
min = num[2];
for(counter=0; counter<=4; counter++)
{
printf("Enter a number: ");
scanf("%d", &num[counter]);
if(num[counter]>max)
{
max = num[counter];
}
if (num[counter]<min)
{
min = num[counter];
}
}
total = max+min;
average = total/2;
printf("The maximum number is: %d\n", max);
printf("The minimum number is: %d\n", min);
printf("The average is: %d", average);
getch();
return 0;
}
最终修复了我的最小值和最大值错误,现在我遇到了平均值问题。我应该只得到最小和最大数字的平均值,但它一直显示平均值为零。有人可以帮忙吗?谢谢你。
【问题讨论】:
-
学习使用惯用的
for (counter = 0; counter < 5; counter++)循环而不是在条件中使用counter <= 4。 -
另外,您可能会注意到您根本不需要数组。您可以简单地将不定数量的值读取到单个变量中,一次一个,然后使用该变量执行最小、最大和求和操作。那么您将不限于固定大小的数组。当然,您必须正确处理来自
scanf()的错误和 EOF,但无论如何您都应该这样做。 -
完成后不要再破坏你的问题了。这是你今天第三次这样做了。