1

我正在尝试使用 C 语言编写一个程序,该程序获取 5 个输入数字,然后将它们存储在一个数组中。得到 5 个数字后,我必须得到输入的 MINIMUN 和 MAXIMUM 数字的最小值、最大值和平均值,而不是全部五个。所以这是我制作的代码。当我获得最大数量时,它似乎工作正常。但是当涉及到最小值时,它仍然与最大值相同,所以我会得到不同的平均值。

#include <stdio.h>
#include <conio.h>

int main()
{
int num[5];
int counter, min, max=0;
float average, total;
min=num;

for(counter=1; counter<=5; counter++)
{
    printf("Enter a number: ");
    scanf("%d", &num[5]);

    if(num[5]>max)
    {
        max = num[5];
    }

    if (num[5]<min)
    {
        min = num[5];
    }
}

total = min + max;
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;
}
4

1 回答 1

4

由于这是一个学习练习,我不会更正您的代码,但指出需要修复的内容:

  • C 中的数组是从零开始索引的,而不是从一开始,所以计数器应该从 0 到 4,包括 0 到 4
  • min是一个int,whilenum是一个数组,所以赋值min=num无效
  • scanf应该将数据放入&num[count],而不是&num[5]
  • 以您编写循环的方式,您根本不需要数组:您需要输入的最后一个数字。
  • total不能计算为min+max; 你需要保持一个运行总数,在每次迭代时更新它。
于 2013-09-07T01:48:20.227 回答