中易网

杭电ACM2014 用C语言 但是提交代码她说编译错误。。。初学求教

答案:2  悬赏:10  
解决时间 2021-01-13 13:29
  • 提问者网友:皆是孤独
  • 2021-01-12 13:38
杭电ACM2014 用C语言 但是提交代码她说编译错误。。。初学求教
最佳答案
  • 二级知识专家网友:狂恋
  • 2021-01-12 14:43
#include

int main()
{
int number;
while(scanf("%d",&number)!=EOF)
{
int i;
double sum=0;
int maek[100];//int maek[number];number是变量不可以这样用,
//int temp;//变量没用过,可以删除
for(i=0;i {
scanf("%d",&maek[i]);
}
int pass;
int z=0;
int hold;
for(pass=1;pass<=number-1;pass++){
for(z=0;z {
if(maek[z]>maek[z+1])//; 这里的分号是多余的
{
hold=maek[z];
maek[z]=maek[z+1];
maek[z+1]=hold;
}
}
}
for(i=1;i<=number-2;i++)
{
sum+=maek[i];
}

double average=sum/(number-2);
printf("%.2f\n",average);
// return 0;位置不对,在下面
}
return 0;
}追问更正了还是不行额,那个数组里面定义长度不能用变量?

追答亲,我用的是vc++6.0你用的是什么?TC2.0?我的改好后运行没错,可以达到题目中的要求,追问亲。。你好厉害喔。!!!!
原来我没有改int maek[100]
可是为什么int maek[number]是不行的呢?变量不可以这样用的话,那么我想从键盘输入一个来定义数组的长度该怎么办呢???追答在创建数组的时候,内存需要给数组分配地址,而数组的地址是连续的,也是固定的,因为变量没有跟常量一样有固定的值,所以编译器是不支持的
全部回答
  • 1楼网友:酒者煙囻
  • 2021-01-12 15:16
我复制了你的程序编译了一下,并没有报错,你用得什么编译器编译的,把报的错复制出来给我看看
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息