| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2225 人关注过本帖
标题:大佬解释一下不能正常返回的问题
只看楼主 加入收藏
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
结帖率:40%
收藏
已结贴  问题点数:20 回复次数:8 
大佬解释一下不能正常返回的问题
大佬解释一下问题
    double类型的getPower函数无法正常输出结果


程序代码如下:

#include<iostream>
using namespace std;
/*
  计算x的y次方
要求:
   两个重载函数编写程序
   用递归函数getPower
*/
//第一个递归函数
int val=1;
int getPower(int x,int y){
    val=val*x;
    if(y!=1)
        val=getPower(x,y-1);
    else
        return val;
}
//第二个递归函数
double val2=1;
double getPower(double x,int y){
    val2=val2*x;
    if(y!=1)
        val2=getPower(x,y-1);
    else
        return val2;
   
}
int main(){
    int a1,b1;
    cout<<"请输入整形底数和指数:"<<'\n';
    cin>>a1;
    cin>>b1;
    cout<<"x^y= "<<getPower(a1,b1)<<'\n';
    double a2;
    int b2;
    cout<<"请输入双精度底数和整形指数:"<<'\n';
    cin>>a2;
    cin>>b2;
    cout<<"x^y= "<<getPower(a2,b2)<<'\n';
    return 0;
}
搜索更多相关主题的帖子: double 函数 int cout cin 
2018-06-10 10:56
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:4 
double getPower(double x,int y){
    val2=val2*x;
    if(y!=1)//if(y>1)
        val2=getPower(x,y-1);
    else
        return val2;
   
}

剑栈风樯各苦辛,别时冰雪到时春
2018-06-10 11:03
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:20
专家分:18
注 册:2018-3-10
收藏
得分:0 
回复 2楼 林月儿
问题不在这,还是不对,错误没变化
2018-06-10 11:09
踏平怡红院
Rank: 2
等 级:论坛游民
威 望:1
帖 子:29
专家分:23
注 册:2018-6-4
收藏
得分:4 
萌新一枚 看程序后有个疑问  前后共定义了两个不同类型 同名的变量    第一个函数我理解为调用第一个int型的(是因为定义在它上边么?)     第二个函数该用哪个变量?
   
2018-06-10 11:57
踏平怡红院
Rank: 2
等 级:论坛游民
威 望:1
帖 子:29
专家分:23
注 册:2018-6-4
收藏
得分:0 
看错了  不好意思哈
2018-06-10 11:59
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:4 
#include<iostream>
using namespace std;
double val2 = 1.0;
double getPower(double x, int y)
{
    val2 = val2 * x;
    if (y > 1)
        val2 = getPower(x, y - 1);
    else if (y < 1)
        val2 =1/ getPower(x, y * (-1) - 1);
    else
        return val2;
}
int main()
{
    double a2;
    int b2;
    cout << "请输入底数和整形指数:" << '\n';
    cin >> a2 >> b2;
    cout << a2 << "^" << b2 << "=" << getPower(a2, b2) << '\n';
    return 0;
}

[此贴子已经被作者于2018-6-10 13:36编辑过]

2018-06-10 13:34
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:4 
整形底数和指数部分没问题,有问题的是双精度底数和整形指数部分。
2018-06-10 13:46
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
收藏
得分:4 
getPower函数中,
进入if语句的真分支中,没有return语句。
继续执行,仍没有return语句。
无法返回计算结果。

2018-06-10 14:56
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
把else去掉

~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-10 20:03
快速回复:大佬解释一下不能正常返回的问题
数据加载中...
 
   



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

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