| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:关于return 返回值的问题
只看楼主 加入收藏
好笨的鸟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-4-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
关于return 返回值的问题
有问题的代码
#include<iostream>
int main()
{
    using namespace std;
    double x,n,y;
    y = 1;
    double xn(double x,double n,double y);
    cout<<"请输入 x 和 n : ";
    cin >> x >> n;
    cout << endl
         << "x 的 n 次幂为 :"
         << xn(x,n,y);

}
    double xn (double x,double n,double y)
{        
        y *= x;
        if ( --n > 0 )
            xn(x,n,y);
        else return y;
}

能达到我要求的代码
#include<iostream>
int main()
{
    using namespace std;
    double x,n,y;
    y = 1;
    int z = 0;
    double xn(double x,double n,double y,int z);
    cout<<"请输入 x 和 n : ";
    cin >> x >> n;
    cout << endl
    //      << "x 的 n 次幂为 :"
    //      << xn(x,n,y,z);
    xn(x,n,y,z);
    double xn (double x,double n,double y)
{        using namespace std;
        y *= x;
        if ( --n > 0 )
            xn(x,n,y,z);
        else cout<<y;
}

求指教为什么两种情况结果不一样
搜索更多相关主题的帖子: namespace include return double 
2013-04-05 16:24
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
double xn (double x,double n,double y);这是一个double类型的函数,需要返回值的,返回的主函数当中,而cout<<y;这个就是直接输入的屏幕上了

Maybe
2013-04-05 17:28
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:20 
函数参数都不一致

www.qunxingw.wang
2013-04-05 17:31
逆水寒刘
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:76
专家分:117
注 册:2013-3-27
收藏
得分:0 
#include<iostream>
using namespace std;
double xn(double x,int n);//函数声明
int main()
{         
    double x;
    int   n;
    cout<<"请输入x和n(x必须大于0): ";
    cin >> x >> n;
    while(x<=0.0)
    {
        cout<<"x小于或等于0无意义。输入错误,请重新输入"<<endl;
        cin>>x;
    }
    cout<<x<<"的"<<n<<"次幂为:";
    cout<<xn(x,n);
    cout<<endl;
    return 0 ;
}
double xn(double x,int n)
{
    if(n==0||x==1)
        return 1;
    if(n>0)
        return x*xn(x,n-1);
    if(n<0)
    {    n=-n;
       x=1.0/x;
       return x*xn(x,n-1);
    }
 
} 我对你第一次的代码进行了更改,只是你写的代码格式太乱,改的我实在是……顺便提醒一下楼主,编代码时注意下问题说明及格式;
2013-04-06 13:00
hjb5074
Rank: 1
等 级:新手上路
帖 子:19
专家分:2
注 册:2012-5-31
收藏
得分:0 
怎么都没有前置函数声明
2013-04-06 15:58
好笨的鸟
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-4-5
收藏
得分:0 
回复 4楼 逆水寒刘
非常感谢,关于 自己写递归时出现的逻辑问题也想明白了
2013-04-06 20:58
快速回复:关于return 返回值的问题
数据加载中...
 
   



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

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