为什么在ACM里面总是出现 Compilation Error错误啊?!在C-FREE里运行0错误0警告啊!

如题..程序如下:#include<stdio.h>intmain(){intN,i,b=0;N=1;while(N!=EOF){scanf("%d",&N);if(N=... 如题..
程序如下:
#include<stdio.h>

int main()
{
int N,i,b=0;
N=1;
while(N!=EOF)
{
scanf("%d",&N);
if(N==0) return 0;
int a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
b=a[i]+b;
a[i]=0;
}
printf("%d\n",b);
b=0;
}
}

ACM里面警告的是:
4_0_106736_9815.c
4_0_106736_9815.c(11) : error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
4_0_106736_9815.c(14) : error C2065: “a” : 未声明的标识符
4_0_106736_9815.c(14) : error C2109: 下标要求数组或指针类型
4_0_106736_9815.c(18) : error C2109: 下标要求数组或指针类型
4_0_106736_9815.c(19) : error C2109: 下标要求数组或指针类型

但是为什么c-free里面连警告都咩有呢?
展开
 我来答
百度网友c19c0d0
2011-10-02 · TA获得超过1537个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:446万
展开全部
编译器不同……
改成这样就行了。。
#include<stdio.h>

int main()
{
int N,i,b=0;
int a[1000]; //这里的数组要足够大 要满足题目的要求……
N=1;
while(N!=EOF)
{
scanf("%d",&N);
if(N==0) return 0;

for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<N;i++)
{
b=a[i]+b;
a[i]=0;
}
printf("%d\n",b);
b=0;
}
}
凌舞绯羽
推荐于2018-04-26
知道答主
回答量:13
采纳率:0%
帮助的人:15.9万
展开全部
C语言中 int a[N] 这样的定义应该是不可以的,定义数组下标不能用变量
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jasonjin2009
2011-09-27 · TA获得超过343个赞
知道答主
回答量:93
采纳率:100%
帮助的人:86.7万
展开全部
一维数组大小要有确定的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式