杭电acm2014的C语言问题,为什么提交了却是Compilation Error,求大神解答! 50

题目要求输入每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分,选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分。下面是我的代码,我知... 题目要求输入每行的第一个数是n(2<n<=100),表示评委的人数,然后是n个评委的打分,选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分。下面是我的代码,我知道输入分数当超过100的时候就不正确了,但想知道为什么。
#include "stdio.h"

int main()

{

int n,i,t,j,a[i];

double sum;

while (scanf("%d",&n)!=EOF) {

sum=0;

for (i=1; i<=n; i++) {

scanf("%d",&a[i]);

}

for (i=0; i<n-1; i++) {

for (j=1; j<n-i; j++) {

if (a[j]>a[j+1]) {

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

for (i=2; i<n; i++) {

sum+=a[i];

}

sum=sum/(n-2);

printf("%.2lf\n",sum);

}

return 0;

}
展开
 我来答
匿名用户
2015-04-11
展开全部
#include "stdio.h"//最好改成#include <stdio.h>
int i,a[i];c语言不支持这种形式。因为n<=100的所以你可以这样写:

const int N=105;
int a[N];
另外提示你的是编译错误。
更多追问追答
追问
但我改了之后再编译了下是正确的,而且输入输出也是正确的,但为什么提交后显示wrong answer?解答了给你加分!
追答
for (i=1; i<=n; i++) {

scanf("%d",&a[i]);

}改为:
for (i=0; i<n; i++)
scanf("%d",&a[i]);

for (i=2; i<n; i++) {

sum+=a[i];

}改为:
for (i=1; i<n-2; i++)
sum+=a[i];
xoaxa
2015-04-11 · TA获得超过8607个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3406万
展开全部
#include <stdio.h>

int main() {
int i,n,score;
double sum;
while (scanf("%d",&n) != EOF) {
sum = 0;
for (i = 0; i < n; i++) {
scanf("%d",&score);
sum += score;
}
printf("%.2lf\n",sum / n);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式