| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:新手求助(输出结果显示出现非法浮点数运算)
只看楼主 加入收藏
衣冠禽兽
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2014-12-25
收藏
 问题点数:0 回复次数:4 
新手求助(输出结果显示出现非法浮点数运算)
问题程序如下:
#include<iostream>
using namespace std;
double calculate(double,double);
int main()
{
    double sum=0,x;
    cin>>x;
    cout<<calculate(x,sum);
    system("pause");
    return 0;
}

double calculate(double x,double sum)
{
    int i;
    double sum_p=1;
    if(x==0)
        return sum+1;
    for(i=1;i<=x;i++)
    {   
        sum_p=sum_p*x;
        sum_p=sum_p/i;
    }
    sum=sum+sum_p;
    calculate(x-1,sum);
}

求前辈们指点一下,谢谢。
搜索更多相关主题的帖子: double 
2014-12-25 22:12
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
sum_p=sum_p*x;在x较大的情况下,这种语句循环次数多了有可能超出double类型的取值范围。你先检查一下有没有这种问题。还有一点。你在递归调用时只调用了calculate(x-1,sum);还没有接受其返回值传递回来,估计即使运行成功也不会出现递归的效果。
2014-12-25 23:03
衣冠禽兽
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2014-12-25
收藏
得分:0 
谢谢
2014-12-25 23:47
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9011
专家分:53957
注 册:2011-1-18
收藏
得分:0 
你的 calculate 函数实现,完全不知所云
结尾连个return都没有;calculate(x-1,sum)不修改任何东西,你执行它有何目的?

最重要好的是,你得告诉别人,你这段代码想实现什么样的功能。
2014-12-26 09:37
衣冠禽兽
Rank: 1
等 级:新手上路
帖 子:4
专家分:4
注 册:2014-12-25
收藏
得分:0 
回复 4楼 rjsp
错误已修正,新手刚学递归,犯了点低级错误,谢谢你的回复...
2014-12-27 08:37
快速回复:新手求助(输出结果显示出现非法浮点数运算)
数据加载中...
 
   



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

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