#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