选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手得分

#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>
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;//前n-2项和

if(i==(n-1)) //n+1 项跳出不继续输入
{
    break;
}

i++;//第n+1 项

scanf("%d",&y);

if(max<y) //n+1项判断
max=y;
if(min>y)
min=y;
}
z=(z-min-max)/(n-2);
printf("%.2lf\n",z);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-07

本代码是基于Python3编写的。一个比赛算分代码 去掉最高分 去掉最低分,输出最终得分。


第2个回答  2013-04-10
#include<stdio.h>
void main()
{
int n,y,i=1,min,max;
double z=0;
scanf("%d",&n);
scanf("%d",&y);
min=max=y;
z+=y;
while(i<=n-1)
{
i++;
scanf("%d",&y);
if(max<y)
max=y;
if(min>y)
min=y;
z+=y;
}
z=(z-min-max)/(n-2);
printf("%.2lf\n",z);
}

自己对比一下吧。你的z求的不是总和,最后少加了一个数。比如说n=4;i=1<=3成立运行一次i=2;2<=3成立,再运行一次,i=3;3<=3成立再运行一次,,i=4;一共运行3次,少加了最后一个数。

本回答被提问者采纳
第3个回答  2013-04-10
请加上解释,不懂你写的是个啥
相似回答