| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 423 人关注过本帖
标题:又来求助大家了
只看楼主 加入收藏
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:8 
又来求助大家了
这个是e的幂级数的c 我自己试了个结果是零很晕 但不知道哪里有问题大家帮忙看看啊
main()
{float i=0,j=1,k=1,l,o=1;
while(j<1E-7)
{j=1/o;i=i+j;k++;o=1;l=1;
while(l>=k)
{o=o*l;l=++l;}}
printf("%d\n",i);}

[ 本帖最后由 黄昏乐章 于 2011-6-7 09:48 编辑 ]
2011-06-07 09:24
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:20 
原因很明显啊,j == 1 > 1E-7。 所以 while 循环根本不会执行~
2011-06-07 09:31
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
果然丢人了刚开始学 不过谢谢了
2011-06-07 09:38
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
main()
{float i=0,j=1,k=1,l,o=1;
while(j>1E-7)
{j=1/o;i=i+j;k++;o=1;l=1;
while(l<=k)
{o=o*l;l=++l;}}
printf("%d\n",i);}
改成这样依然不行啊还是零 结贴有点急了
2011-06-07 09:47
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
楼主把你的算法发上来,我帮你写代码
2011-06-07 14:18
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
不知道啊,还需要算法 刚开始学没有几天不知道啊 就是题目是e=1+1/(2!)+1/(3!)+1/(4!)+1/(5!)+……+1/(n!) 到1/(n!)小于1E-7
2011-06-07 15:32
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
程序代码:
#include <stdio.h>

int main() {
    int n = 3, fn = 2;
    float e = 1;
    while (fn <= 10000000) {
        e += 1.0 / fn;    // 这里前面用 1.0 表示浮点数,这样在进行除法的时候是按照浮点数除法进行的,得到的结果也是浮点数。
        fn *= n++;        // 这里 fn 表示 n! ,不用解释吧
    }
    printf("%.7f\n", e);
    return 0;
}


ps:这个是计算 e 的算法,不是 e 的幂级数

[ 本帖最后由 voidx 于 2011-6-7 15:59 编辑 ]
2011-06-07 15:56
黄昏乐章
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:73
专家分:25
注 册:2011-6-6
收藏
得分:0 
终于了解了,看来果然需要多看书啊d\不出浮点型 要用f\ 困扰我好长时间啊
2011-06-08 09:37
cey5244
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-1
收藏
得分:0 
  
2011-06-09 02:02
快速回复:又来求助大家了
数据加载中...
 
   



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

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