小白菜鸡提问!我知道这问题很蠢,但是我真的不懂🙏😭一维数组的典型题

img


我写的代码不知道哪里打错了,出来结果好奇怪?

img


下面是我的代码
#include
int main()
{
int i;
float max,min,x=0,sum=0,a[10];
for(i=0;i<=9;i++)
{
scanf("%.f",&a[i]);
}
min=a[0];
max=a[0];
for(i=0;i<=9;i++)
{
if(a[i]<=min)
{
min=a[i];
}
if(a[i]>=max)
{
max=a[i];
}
}
printf("最高分%.2f\n最低分%.2f\n",max,min);
for(i=0;i<=9;i++)
{
if(a[i]==min||a[i]==max)
a[i]=0;
sum=sum+a[i];
}
x=sum*1.0/10;
printf("最后%.2f",x);

}

把scanf里面的 %.f 改成 %f,不要那个点 .

scanf("%f",&a[i]);

1.你的max和min没赋初始值;
2.你的循环max和min写反了。
正确代码:

#include<stdio.h>
int main()
{
    int i;
    float max=0,min=2147483647,x=0,sum=0,a[10];
    for(i=0;i<=9;i++)
    {
        scanf("%.f",&a[i]);
    }
    min=a[0];
    max=a[0];
    for(i=0;i<=9;i++)
    {
        if(a[i]>min)
        {
            min=a[i];
        }
        if(a[i]<max)
        {
            max=a[i];
        }
    }
    printf("最高分%.2f\n最低分%.2f\n",max,min);
    for(i=0;i<=9;i++)
    {
        if(a[i]==min||a[i]==max)
            a[i]=0;
        sum=sum+a[i];
    }
    x=sum*1.0/10;
    printf("最后%.2f",x);
}

如有不对,请在下面评论。