我正在尝试编写一个将数组中的元素相加的函数。不幸的是,每次我尝试访问数组元素时,编译时都会收到上述错误消息。发生了什么事?
#include <stdio.h>
int arraySum(ar, number) {
int x = 0;
int i;
for (i = 0; i < number; i++) {
x += ar[i];
}
return x;
}
int main (void) {
int ar[4] = {3,6,9,12};
int number = 4;
printf("The sum is %i",arraySum(ar[4], number));
return 0;
}
答案 0 :(得分:1)
1)int arraySum(ar, number)
- 在函数声明中,您必须提供参数类型。但你没有。
2)在main
中,您尝试访问ar[4]
,ar
是{{1}}的第五个元素,只有4个元素。
答案 1 :(得分:1)
这就是你的代码应该是这样的:
#include <stdio.h>
int arraySum(int ar[], int number) {
int x = 0;
int i;
for (i = 0; i < number; i++) {
x += ar[i];
}
return x;
}
int main (void) {
int ar[4] = {3,6,9,12};
int number = 4;
printf("The sum is %i",arraySum(ar, number));
return 0;
}
你可以在这里测试一下 http://codepad.org/a2dZzzsG
你完全忘了声明arraySum()参数的类型,所以编译器最初不知道会发生什么,然后你也尝试将ar [4]传递给函数,这不是一个有效的索引vor即使你有5个成员,也只是传递一个int值而不是整个数组。