杭电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;
} 展开
#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;
} 展开
2个回答
2015-04-11
展开全部
#include "stdio.h"//最好改成#include <stdio.h>
int i,a[i];c语言不支持这种形式。因为n<=100的所以你可以这样写:
const int N=105;
int a[N];
另外提示你的是编译错误。
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];
展开全部
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询