加狮子吼的装备:[c]哪里错了?

来源:百度文库 编辑:高考问答 时间:2024/04/26 09:23:58
1main()
2 {
3 int a[3]={0};
4 int i;
5 for(i=0;i<3;i++)scanf("%d,&a[i]");
6 for(i=1;i<4;i++)a[0]=a[0]+a[i];
7 printf("%d\n",a[0])
8 }

我想问一下 第6行得哪里错了?

首先第5行可能打错了,应为scanf("%d",&a[i]);
其次第6行循环里(i=1;i<4;i++)虽然也是循环3次,但是i代表的下标已经超出范围了,也就是说不存在a[3]这个元素。
请再检查程序的意图再进行修改

int a[3]={0};
定义了一个整型数组,其下标索引是从0到2
而第6行for循环的变量i是从1到3,访问的是a[1]到a[3],并且a[3]下标越界。
正确的是:
for(i=0;i<3;i++)
a[0]=a[0]+a[i];

你定义的数组只有a[0],a[1],a[2],而你这里却要循环到a[3],你想数组不越界它怎么办啊。