| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 810 人关注过本帖
标题:可否实现递归调用
只看楼主 加入收藏
明天不一样
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-8-31
收藏
 问题点数:0 回复次数:10 
可否实现递归调用
一个计算 x 的 y 次幂的函数,用递归实现,代码如下:
int getpower(int x,int y)
{
y=1?(return x):(return (getpower(x,y-1));
}
可否实现,代码有没有错误?
另外一种方法:
int getpower(int x,int y)
{
if(y==1)
return x;
return (getpower(x,y-1));
}
搜索更多相关主题的帖子: 递归 
2006-11-13 21:16
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
int getpower(int x,int y)
{
if(y==1)
return x;
return (x*getpower(x,y-1));
}

明天不一样很久不见,呵呵.

倚天照海花无数,流水高山心自知。
2006-11-13 21:25
明天不一样
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-8-31
收藏
得分:0 
我的关键问题是第一种是否有错误?
int getpower(int x,int y)
{
y=1?(return x):(return x*(getpower(x,y-1));
}

可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-11-13 21:29
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
应该没有错.

倚天照海花无数,流水高山心自知。
2006-11-13 21:52
明天不一样
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-8-31
收藏
得分:0 
怎么编译不过去

可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-11-13 22:22
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用明天不一样在2006-11-13 21:29:19的发言:
我的关键问题是第一种是否有错误?
int getpower(int x,int y)
{
y==1?(return x):(return x*(getpower(x,y-1));
}


倚天照海花无数,流水高山心自知。
2006-11-13 22:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
还少了个右括号.

倚天照海花无数,流水高山心自知。
2006-11-13 22:48
明天不一样
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-8-31
收藏
得分:0 

#include<iostream>
using namespace std;

int getpower(int x,int y)
{
(y==1)?(return x):(return x*(getpower(x,y-1)));
}

void main()
{
int i(5);
int j(3);
int m;
m=getpower(i,j);
cout<<m;
}
运行时提示:syntax error : 'return' 指向错误行是红色的代码;


可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-11-13 22:56
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
(y==1)?(return x):(return x*(getpower(x,y-1)));
错误的.

条件运算符最后要得到一个值
return x它并不代表任何值(表达式值或函数值)

像下边这样都是正确的:
(y==1)?1:2;
(y==1)?(printf("y==1\n")):(printf("y!=1\n"));//printf有返回值

2006-11-13 23:13
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
你可以写成

return (y==1)? x : x*getpower(x,y-1);

2006-11-13 23:15
快速回复:可否实现递归调用
数据加载中...
 
   



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

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