请教下我用C语言写的杭电ACM2016题哪里错了
自己运行没有问题,结果也对,但是提交上去就是wronganswer……题目是:青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平...
自己运行没有问题,结果也对,但是提交上去就是wrong answer…… 题目是: 青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 输入数据有多组,每组占一行,每行的第一个数是n(2<n<100),表示评委的人数,然后是n个评委的打分。 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。 我的程序是这样的: #include<stdio.h> int main() { int n,i,max,min; float z,a[100]; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%f",&a[i]); max=min=1; for(i=2;i<=n;i++) { if(a[i]>a[max])max=i; if(a[i]<a[min])min=i; } for(z=0,i=1;i<=n;i++) if((i!=max)&&(i!=min))z+=a[i]; z=z/(n-2); printf("%.2f\n",z); } return 0; }
展开
1个回答
展开全部
把我百度知道的给抄过来 - - 是HDU2014吧。。 你的代码这样改就AC乐。。 汗~! 无语,才发现我用G++提交AC了,用C提交就错了。。 汗~! 我试了下,你原来的代码用G++提交也也AC了。。 偶也不知道原因。。 楼主自己去提交下试试吧。。 #include<stdio.h> int main() { int n,i,max,min; double z,a[100]; //acm里double吧。。 while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) scanf("%lf",&a[i]); max=min=1; for(i=2;i<=n;i++) { if(a[i]>a[max])max=i; if(a[i]<a[min])min=i; } for(z=0,i=1;i<=n;i++) if((i!=max)&&(i!=min))z+=a[i]; z=z/(n-2); printf("%.2lf\n",z); } return 0; } 这题可以不用开数组。。 我的AC代码。。 #include<stdio.h> int main() { int n,i; double a,sum; double min,max; while(scanf("%d",&n)!=EOF) { scanf("%lf",&a); min=max=sum=a; for(i=1;i<n;i++) { scanf("%lf",&a); sum+=a; if(min>a) min=a; if(max<a) max=a; } printf("%.2lf\n",(sum-min-max)/(n-2)); } return 0; } 追问: 额…… 这个问题就是我问的…… 因为在腾讯这边一直都没有得到答案,就又在百度问了下…… 回答: 呃,两边我都回答了- - 补充: 很无语,用C提交就WA,用G++就AC乐。。 补充: 。。。。 确实不知道 错误在哪里。。= =
满意请采纳
满意请采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询