c语言编写程序实现求一维数组(8个元素)元素之和。
答案:2 悬赏:60
解决时间 2021-12-31 23:04
- 提问者网友:黑米和小志
- 2021-12-31 13:07
c语言编写程序实现求一维数组(8个元素)元素之和。
最佳答案
- 二级知识专家网友:痴妹与他
- 2021-12-31 14:25
你的之所以报错,是由于你定义的数组int b[7].(可以操作b[0]-b[6])
而你用for(;n<=7;n++) 的时候会出现scanf("%d",&b[7]); 这样就数组下标越界了。。
通过指针把求和函数的形参改为指针就可以了。
int getSum(int *array,int endIndex){
int sum=0;
for(int i=0;i sum+=array[i];
}
return sum;
}
而你用for(;n<=7;n++) 的时候会出现scanf("%d",&b[7]); 这样就数组下标越界了。。
通过指针把求和函数的形参改为指针就可以了。
int getSum(int *array,int endIndex){
int sum=0;
for(int i=0;i
}
return sum;
}
全部回答
- 1楼网友:十年萤火照君眠
- 2021-12-31 14:39
你的数组只有定义了维数为7,但是你却往b地址开始的内存里面读入了8个数,然后算的时候,也是算的8个数字的和,所以会出错,。 修改办法:把两处<=7 都改成 <7 就行了!
int l( int* a, int num )
{
int i=0,j=0;
for(;i j=j+a[i];
return j;
}
void main()
{
int b[7] = { 0 };
for ( int i = 0; i < 7; ++i )
{
scanf( "%d", &b[i] );
}
int kk = l( b, 7 );
printf( "%d", kk );
system("pause");
}追问b[0]到b[7]不是8个么?追答定义b[7]的意思就是说这是个包含7个元素的数组,只能是b[0]到b[6]。[]里面的数字代表这个数组有多少个元素,最后一个元素的下标是[]里面的数字-1。比如定义int a[44],表示有44个元素,最后一个元素是a[43]。
int l( int* a, int num )
{
int i=0,j=0;
for(;i
return j;
}
void main()
{
int b[7] = { 0 };
for ( int i = 0; i < 7; ++i )
{
scanf( "%d", &b[i] );
}
int kk = l( b, 7 );
printf( "%d", kk );
system("pause");
}追问b[0]到b[7]不是8个么?追答定义b[7]的意思就是说这是个包含7个元素的数组,只能是b[0]到b[6]。[]里面的数字代表这个数组有多少个元素,最后一个元素的下标是[]里面的数字-1。比如定义int a[44],表示有44个元素,最后一个元素是a[43]。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯