我试图写一个递归函数,但在行中得到一个错误:n + sum(n-1); 我的编译器是德语,因此错误消息的翻译很糟糕:"void value不会被忽略".感谢帮助!
void sum (int n) { if(n==0) { cout << n << endl; } else if(n>0) { n + sum(n-1); cout << n << endl; } } int main() { sum(3); return 0; }
templatetype.. 5
请注意,您已将该函数定义为
void sum (int n);
此功能没有返回值.但是,在此代码中:
n + sum(n-1);
您试图添加n
返回值sum(n - 1)
,这不合法,因为sum(n - 1)
不生成值.
要解决此问题,您可能需要更改函数以便返回int
.如果这样做,您将需要进行其他更改,例如将return语句添加到函数中,但它应该有助于您走上正确的轨道.
希望这可以帮助!
请注意,您已将该函数定义为
void sum (int n);
此功能没有返回值.但是,在此代码中:
n + sum(n-1);
您试图添加n
返回值sum(n - 1)
,这不合法,因为sum(n - 1)
不生成值.
要解决此问题,您可能需要更改函数以便返回int
.如果这样做,您将需要进行其他更改,例如将return语句添加到函数中,但它应该有助于您走上正确的轨道.
希望这可以帮助!