繁体   English   中英

数组和递归 function 不起作用

[英]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}

以下建议的代码:

  1. 使用递归
  2. 执行所需的功能

现在,建议的代码:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM