| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1535 人关注过本帖
标题:初学递归错误,想不通哪地方有问题,
只看楼主 加入收藏
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
收藏
 问题点数:0 回复次数:7 
初学递归错误,想不通哪地方有问题,

#include<iostream>
using namespace std;
void a (int );
//(n-1)n递归
int main()
{   int n;
    cin>>n;
    a(n);
}//4 3 2 1 0
void a ( int n)
{   int b;
    if(n==0)
    {   b=1;
    }
    else
    {
        b=a(n-1)*n;//提示这地方有错
        return b;      
    }
cout << b<< endl;
}
//以下是错误信息
#1
Code
Start
prog.cc: In function 'void a(int)':
prog.cc:19:17: error: invalid operands of types 'void' and 'int' to binary 'operator*'
         b=a(n-1)*n;
           ~~~~~~^~
prog.cc:20:16: error: return-statement with a value, in function returning 'void' [-fpermissive]
         return b ;
                ^
搜索更多相关主题的帖子: function 递归 void int 错误 
2020-01-12 17:53
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
#include<iostream>
using namespace std;
int a (int );
//(n-1)n
int main()
{   int n;
    cin>>n;
  a(n);
    cout<<a(n);

}//4 3 2 1 0
int a ( int n)
{  
    int b;
    if(n==0)
    {   b=1;
    }
    else
       { b=n*a(n-1);}
        return b ;      
   
}
这里已经被改正,不过有了新的疑问。
为什么别人可以用void  fun(int   a);来声明函数而我这里把int a(int n)  变成void a(int n)会大量报错?

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-13 02:42
J_N_Z_guan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-2-4
收藏
得分:0 
仔细看看别人的代码是不是n*a(n-1)而不是b=n*a(n-1),void是无返回值类型
2020-02-04 17:48
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:566
专家分:3690
注 册:2019-7-29
收藏
得分:0 
程序代码:
#include<iostream>

using namespace std;

int a (int n);
//(n-1)n递归
int main()
{
    int n;
    cin>>n;
    cout<<a(n)<<endl;
}//4 3 2 1 0

int a ( int n)
{
    if(n==0)
        return 1;
    else
        return n*a(n-1);//提示这地方有错
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-02-04 18:36
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
收藏
得分:0 
void没有返回值
2020-02-05 20:36
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
去掉return b,或改成int 型函数

2020-02-18 19:47
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
回复 6楼 return_0
你不把这个帖翻出来,我差点儿忘了递归的知识了,今天研究研究一下递归题,然后碰到问题再问你

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-18 21:49
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
这是函数本身错了吧

2020-02-19 19:25
快速回复:初学递归错误,想不通哪地方有问题,
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023540 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved