-4
我想调用这个递归方法,但我不明白为什么它没有达到else语句返回mul。我在主函数中传递值0,它小于n,并且在x变得大于n时,它应该移动到else函数。控制到达非空函数结束
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int n,mul=0;
vector <int> a;
int calc(int x)
{ int mul,chk;
int l=n;
if(x<n)
{
chk=a[x]*(l-1);
l--;
if(mul<chk)
{
mul=chk;
}
calc(x+1);
}
else
{ return mul;}
}
int main() {
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
sort(a.begin(),a.end());
int z=calc(0);
cout<<z;
return 0;
}
“它没有达到else语句”。示例代码中的任何地方都没有“else”关键字。 –
正确地格式化您的代码,将使诊断此问题的源更加容易。 –