#include<stdio.h>
void main()
{
int n,y,i=1,min,max,z=0;
scanf("%d",&n);
scanf("%d",&y);
min=max=y;
while(i<=n-1)
{
z+=y;
i++;
scanf("%d",&y);
if(max<y)
max=y;
if(min>y)
min=y;
}
z=(z-min-max)/(n-2);
printf("%.2lf\n",z);
}
哪里错了?
i=1;
while(i<=n-1)
(0~n-1)是n个 (1~n-1)是 n-1个
#include<stdio.h>自己对比一下吧。你的z求的不是总和,最后少加了一个数。比如说n=4;i=1<=3成立运行一次i=2;2<=3成立,再运行一次,i=3;3<=3成立再运行一次,,i=4;一共运行3次,少加了最后一个数。
本回答被提问者采纳