任何人都可以修复此代码以使其正确吗?
我认为这几乎是正确的,但是最后一个数字是正确的数字,但后面是随机数字。
#include <iostream>
using namespace std;
int jumlah(int a, int b){
if(a*2==b){
cout<<b;
}else{
cout<<b<<"+";
cout<<jumlah(a, b+2);
}
}
int main(){
int a, b;
b=2;
cin>>a;
jumlah(a, b);
return 0;
}
答案 0 :(得分:3)
您的代码具有未定义的行为,因为该函数不返回任何内容。
将其更改为:
int jumlah(int a, int b){
if ( a*2 == b){
return b;
}
cout << b << "+";
return jumlah(a, b+2);
}
并将main
中的呼叫更改为:
cout << jumlah(a, b);
答案 1 :(得分:3)
您的函数从不返回任何内容,因此打印递归结果是不确定的。
从函数中删除结果,然后递归而不打印。
void jumlah(int a, int b){
if(a*2==b){
cout<<b;
}else{
cout<<b<<"+";
jumlah(a, b+2);
}
}