/*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。
我该如何解决这个问题?
答案 0 :(得分: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);
}
答案 1 :(得分:0)
for(i = 1; i ++;)应更改为
for(i=1; i<5; i++)
else {min = a [i];应该改为
if (a[i] < min)
{
min=a[i];
}
答案 2 :(得分:0)
你有其他答案中提到的错误的for循环条件。
此外,您应该修复在for-loop中分配给min
变量的条件。现在这是不正确的。
此外,您在开头设置avg = 0
是错误的。它应该是avg = a[0]
,因为一个元素的平均值等于该元素的值。