| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1857 人关注过本帖
标题:编写一个函数,计算1-1/2-1/4-1/8.....-1/1024的结果。。。不知道哪里出问题 ...
只看楼主 加入收藏
heroxuanxuan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-17
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:10 
编写一个函数,计算1-1/2-1/4-1/8.....-1/1024的结果。。。不知道哪里出问题了。。。就是执行的时候,一直不显示。。。求高手指点
编写一个函数,计算1-1/2-1/4-1/8.....-1/1024的结果。。。不知道哪里出问题了。。。就是执行的时候,一直不显示。。。求高手指点
#include<stdio.h>
#include<math.h>
main()
{
double x,y,i,j,s,t;
i=1.0;
j=2.0;
s=1.0;
t=0.5;
x=2.0;
y=10.0;
while(j<=pow(2.0,10.0))
{
t=i/j;
s+=(-t);
}
printf("s=%f",s);
}
搜索更多相关主题的帖子: 1024 include double 
2012-08-02 12:10
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:1 
给个理由跳出while循环
2012-08-02 12:37
a7882669
Rank: 4
等 级:业余侠客
帖 子:192
专家分:290
注 册:2012-4-17
收藏
得分:1 
你的程序有问题,不能跳出循环,还有 s+=(-t),   这个有用???
2012-08-02 13:14
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:1 
j动也没动在那儿死循环我懒得说了

有多少人不知道 1 - 2^(-1) - 2^(-2) -... - 2^(-n) == 2^(-n) ?

重剑无锋,大巧不工
2012-08-02 14:52
wenqingxu
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-8-2
收藏
得分:1 

# include <stdio.h>
# include <math.h>
int main (void)
{
    double s,i,j,x,t;
    int y;
    s=1.0;
    i=1.0;
    j=0.0;
    x=2.0;
    y=1;
    while (y<11)
    {
        j= pow(x,y);
        t= i/j;
        s=s-t;
        y++;
    }
    printf ("s=%f\n",s);
    return 0;
}
2012-08-02 15:06
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:1 
顶楼上
2012-08-02 15:38
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:1 
可以像杨大哥说的 套数学公式啊。

梅尚程荀
马谭杨奚







                                                       
2012-08-02 15:55
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:0 
等比数列求和公式:s=a1*(1-q^n)/(1-q)
1-1/2-1/4-1/8.....-1/1024
=1-(1/2+1/4+1/8.....+1/1024)
=1-1/2*(1-(1/2)^n)/(1-1/2)
=1-(1-(1/2)^n)
=(1/2)^n
其中n=10

[ 本帖最后由 stophin 于 2012-8-3 09:03 编辑 ]
2012-08-03 09:01
天剑山
Rank: 4
等 级:业余侠客
威 望:3
帖 子:119
专家分:266
注 册:2012-8-3
收藏
得分:1 
表示你忘了让j值改变,导致死循环
2012-08-03 09:07
暮幕悠悠
Rank: 2
等 级:论坛游民
帖 子:17
专家分:13
注 册:2012-7-21
收藏
得分:1 
#include<stdio.h>
#include<math.h>
int
main(void)
{
    double x,y,i,j,s,t;
    int a;
    i = 1;
    j = 2;
    s = 1;
    a = 2;
    while (j <= pow(2,10))
    {
        t = i / j;
        s = s - t;
        j = pow(2,a);
        a = a + 1;
    }
    printf("%.4f",s);
    return(0);
}
2012-08-03 14:56
快速回复:编写一个函数,计算1-1/2-1/4-1/8.....-1/1024的结果。。。不知道哪里 ...
数据加载中...
 
   



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

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