C - 数组和递归函数不起作用


大家好,我很困惑为什么这个函数每次都返回0。我使用arr[0]作为索引,并在main函数中定义它的数组大小。
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 );
}
}

最新更新