要求用数组名作为函数形参,在子函数中实现求和,在主函数中输出结果
这是我写出来的
#include<stdio.h>
int l(int a[7])
{int i=0,j=0;
for(;i<=7;i++)
j=j+a[i];
return j;
}
void main()
{
int b[7],n=0,m=0,c;
for(;n<=7;n++)
scanf("%d",&b[n]);
c=l(b);
printf("%d",c);
}
运行完了之后可以求和,但是程序会报错。
另外希望大家写一下通过指针怎么写这道题。
b[0]到b[7]不是8个么?
追答定义b[7]的意思就是说这是个包含7个元素的数组,只能是b[0]到b[6]。[]里面的数字代表这个数组有多少个元素,最后一个元素的下标是[]里面的数字-1。比如定义int a[44],表示有44个元素,最后一个元素是a[43]。
你的之所以报错,是由于你定义的数组int b[7].(可以操作b[0]-b[6])
而你用for(;n<=7;n++) 的时候会出现scanf("%d",&b[7]); 这样就数组下标越界了。。
通过指针把求和函数的形参改为指针就可以了。
int getSum(int *array,int endIndex){