-1
/*C program that outputs minimum, maximum and average of integers*/

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

void main()
{
int i,a[5],min,max;
float avg;
printf("\n Enter any number : ");
scanf("%d",&a[0]);
max=a[0];
min=a[0];
avg=0;
for(i=1; i++;)
{
printf("\n Enter any0 Number : ");
scanf("%d",&a[i]);
if(a[i]>max)
{
max=a[i];
}
else
{
min=a[i];
}
avg=avg+a[i];

}

avg=avg/5;

printf("\n The minimum number is %d",min);
printf("\n The maximum number is %d",max);
printf("\n The average is %f",avg);

getch();

}

它应该问用户 5 次,但它没有 :( ?输出应该是这样的。

输出:

输入数字:4 输入数字:6 输入数字:7 输入数字:20 输入数字:1

最小值为 1。最大值为 20。平均值为 7.6。

我怎样才能解决这个问题?

4

3 回答 3

1

你的 for 循环是错误的

for(i=1; i++;)

这应该是

for(i=1;i<5; i++) //because you already scanned a[0].. you need to scan till a[4]    

use avg=a[0]; instead of avg=0; 

in for loop you need to write use if (a[i]<min) instead of else

修改后的代码

#include <stdio.h>

void main()
{
        int i,a[5],min,max;
        float avg;
        printf("\n Enter any number : ");
        scanf("%d",&a[0]);
        max=a[0];
        min=a[0];
        avg=a[0];

        for(i=1;i<5;i++)
                {
                printf("\n Enter any0 Number : ");
                scanf("%d",&a[i]);
                if(a[i]>max)
                max=a[i];
                if( a[i]< min )
                min=a[i];

                avg=avg+a[i];

                }

                avg=avg/5;

printf("\n%d ,%d, %f\n",min,max,avg);
}
于 2013-09-12T10:11:42.097 回答
0

for(i=1; i++;) 应改为

for(i=1; i<5; i++)

否则 { min=a[i]; } 应该改为

if (a[i] < min)
{
    min=a[i];
}
于 2013-09-12T10:13:16.013 回答
0

如其他答案中所述,您的 for 循环条件错误。

此外,您应该修复min在 for 循环中分配给变量的条件。现在是不正确的。

另外,您在avg = 0开始时设置是错误的。应该是avg = a[0],因为一个元素的平均值等于该元素的值。

于 2013-09-12T10:14:25.627 回答