【发布时间】:2016-07-23 03:47:37
【问题描述】:
考虑函数
void solve(int arr[],int ind,int sum,int n,int count)
{
if(ind==n){
if(sum>max)
max=sum;
}
else{
sum+=arr[ind];//sum
if(ind==n-1)
solve(arr,ind+1,sum,n,1);//1st call
if(ind==n-2 && count>1)
solve(arr,ind+2,sum,n,1);//2nd call
if(ind<n-1 && count<2){
count++;
solve(arr,ind+1,sum,n,count);//3rd call
}
if(ind<n-2)
solve(arr,ind+2,sum,n,1);//4th call
if(ind<n-3)
solve(arr,ind+3,sum,n,1);//5th call
}
}
我对逻辑没有问题,但对变量的传递感到困惑。我无法确定整数 sum+=arr[ind] //sum 是在每次调用中作为同一个变量传递,还是在每次调用后更新函数?
【问题讨论】:
-
Thnx ..我得到了我猜想的答案...但是@user3386109 你所说的 c++ 答案是什么意思....在 c 中有什么不同吗?
-
引用是一个 C++ 特性。在 C 中,您将使用指针。
标签: c++ c function parameter-passing