[英]array sum recursion function doesn't work
大家好,我很困惑为什么这个 function 每次都返回 0。 我使用 arr[0] 作为索引并在主函数中定义它的数组大小。
int sum_array (int arr[]) {
int result;
arr[0] = arr[0]-1;
if(arr[0]<=0){
return 0;
}
result = ((sum_array(arr))+(arr[arr[0]]));
return result;
}
如果我使用if(arr[0]<=1)
而不是if(arr[0]<=0)
它返回 5。我也不明白为什么它返回 5。
array = {0,1,1,2,3,3,4}
以下建议的代码:
现在,建议的代码:
int sum_array (int arr[])
{
if(arr[0]<=0)
{
return 0;
}
else
{
int index = arr[0];
arr[0]--;
return arr[ index ] + sum_array( arr );
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.