-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 ループ条件が間違っています。

minさらに、 for ループで変数に代入する条件を修正する必要があります。今は間違っています。

また、最初に設定avg = 0しているのは間違っています。avg = a[0]1 つの要素の平均がその要素の値に等しいため、それは である必要があります。

于 2013-09-12T10:14:25.627 に答える
0

for(i=1; i++;) を次のように変更する必要があります

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

そうでなければ{最小= a [i]; に変更する必要があります

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