获取输入的五个数字的最小值,最大值和最大值

时间:2013-09-07 01:42:13

标签: c arrays max min minmax

我正在尝试使用C中的程序来获取5个输入数字,然后将这些数据存储在数组中。获取5个数字后,我必须得到最小数字,max和输入的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;
}

1 个答案:

答案 0 :(得分:4)

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

  • C中的数组是从零而不是从一个索引,所以计数器应该从0到4,包括
  • minint,而num是数组,因此作业min=num无效
  • scanf应将数据放入&num[count],而不是&num[5]
  • 在您编写循环的方式中,根本不需要数组:您需要输入最后一个数字。
  • total无法计算为min+max;你需要保持一个运行总计,每次迭代都要更新它。