| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1145 人关注过本帖
标题:萌新提问,求大佬解答~
只看楼主 加入收藏
EcNico
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-31
收藏
 问题点数:0 回复次数:5 
萌新提问,求大佬解答~
问题:
    编写程序计算的e^x值,公式如下=
                e^x =  1+x+x^2/2!+x^3/3!+...+x^n/n!
要求循环跳出条件为x^n/n!<0.000001

我编写的代码是这样的;
#include <stdio.h>
#include <math.h>

int main()
{
    int iCounter = 1;
    long int factorial = 1;
    double x;
    double result = 1;
    double text;
    double temp;

    printf("Please input the x:");
    scanf_s("%lf", &x);
    text = exp(x);

    do
    {
        factorial = 1 * iCounter*factorial;
        result = result + pow(x, iCounter) / factorial;
        iCounter++;
        temp = pow(x, iCounter - 1) / factorial > 0.000001;

    } while (pow(x, iCounter - 1) / factorial > 0.000001);

    printf("result = %f,text = %f\n", result,text);



    getchar();
    return 0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

如果有大佬帮忙的话,万分感激,我debug好久
搜索更多相关主题的帖子: int double result text pow 
2017-10-31 16:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
考虑一下 factorial = 1 * iCounter*factorial; 溢出的可能
2017-10-31 16:43
EcNico
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-31
收藏
得分:0 
已经解决了,我把long int改成了long long int;还有就是循环的第二条式子要*1.0
2017-10-31 19:39
EcNico
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-10-31
收藏
得分:0 
谢谢大佬了
2017-10-31 19:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用EcNico在2017-10-31 19:39:40的发言:

已经解决了,我把long int改成了long long int
不信!
就拿你输入的5来说,中途需要求到23的阶乘,根本就不是long long int能存得下的。
中途的时候数值就已经错了,只是因为错得不多,导致你误以为结果是正确的。
其实也不正确呀,我运行你的程序,输出是
result = 148.413035,text = 148.413159
两个数明明不等

算了,帮你写个代码吧,仅供参考
程序代码:
#include <stdio.h>

int main( void )
{
    double x;
    scanf( "%lf", &x );

    double sum = 1;
    double item = 1;
    for( unsigned i=1; item>=0.000001; ++i )
    {
        item *= x/i;
        sum += item;
    }

    printf( "%lf\n", sum );
}



2017-11-01 09:04
王国梁
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-11-2
收藏
得分:0 
厉害厉害
2017-11-02 15:22
快速回复:萌新提问,求大佬解答~
数据加载中...
 
   



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

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