理解递归函数中的错误?

 手机用户2502920725 发布于 2023-02-13 21:32

我试图写一个递归函数,但在行中得到一个错误: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语句添加到函数中,但它应该有助于您走上正确的轨道.

希望这可以帮助!

1 个回答
  • 请注意,您已将该函数定义为

    void sum (int n);
    

    此功能没有返回值.但是,在此代码中:

    n + sum(n-1);
    

    您试图添加n返回值sum(n - 1),这不合法,因为sum(n - 1)不生成值.

    要解决此问题,您可能需要更改函数以便返回int.如果这样做,您将需要进行其他更改,例如将return语句添加到函数中,但它应该有助于您走上正确的轨道.

    希望这可以帮助!

    2023-02-13 21:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有