第一行输入裁判人数,第二行输入裁判分数(用空格隔开),去掉一个最高分和最低分后求平均。输出平均值。

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i;
float a,b,max,min,sum;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%f",&a);
if(max<=a)
{
max=a;
}
if(min>=a)
{
min=a;
}
sum=sum+a;
}
b=(sum-max-min)/(n-2);
printf("%.2f\n",b);
return 0;
}
为什么裁判人数会被算进去?

max min sum 三个变量未初始化,修改如下,供参考:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, i;
    float a, b, max, min, sum = 0;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%f", &a);
        if (i == 1)
        {
            max = min = a;
        }
        else
        {
            if (max <= a)
                max = a;
            if (min >= a)
                min = a;
        }
        sum = sum + a;
    }
    b = (sum - max - min) / (n - 2);
    printf("%.2f\n", b);
    return 0;
}

额,你的sum要提前赋值,sum的初始值要赋值为0,否则系统会赋予sum一个随机值的,然后你进行第一次sum+a时的值就不是a