当前位置: 代码迷 >> C语言 >> 我这样写为什么会死循环!帮忙讲解下~
  详细解决方案

我这样写为什么会死循环!帮忙讲解下~

热度:265   发布时间:2008-04-22 21:15:40.0
我这样写为什么会死循环!帮忙讲解下~
小弟出学C语言:这题循环不会啦!
求1- 1/3 + 1/5 - 1/7 +1/9 -……1/N直到最后一项的绝对指小于10的负4次方!~~
我自己写的
main()
{
int sum=0,i=1,t=1;
while(fabs(t)>=1E-4)
{sum+=t;
i+=2;
t=-(1/i);
}
printf("sun=%d",sum);
}
可写到这就变成全减运算啦!~~而题目是做减再做加然后直到1/n!~

[[it] 本帖最后由 sssszhaojun 于 2008-4-22 21:28 编辑 [/it]]
搜索更多相关的解决方案: 讲解  

----------------解决方案--------------------------------------------------------
程序代码:

#include<stdio.h>
int main(void)
{
    float sum = 0.0f, x=1;
    int i;
    for(i=1;i<10000;++i)
    {
        x=i&1? 2*i-1 : 1-2*i;
        sum += 1.0/x;
     }
     printf("%.3f",sum);
     return 0;
}

----------------解决方案--------------------------------------------------------
回复 2# 的帖子
我还没学FOR语句啊 !~~能用WHILE讲解下吗
----------------解决方案--------------------------------------------------------
只是格式不一样.
程序代码:

#include<stdio.h>
int main(void)
{
    float sum = 0.0f, x=1;
    int i=1;
    while(i<10000)
    {
        x=i&1? 2*i-1 : 1-2*i;
        sum += 1.0/x;
        ++i;
     }
     printf("%.3f",sum);
     return 0;
}

----------------解决方案--------------------------------------------------------
你可以增加一个变量,初始值为-1,然后每次循环的时候乘以-1,计算每一项的时候,乘以这个变量,就能实现每一项正负交替了
本帖最近评分记录

从BFS(Breadth First Study)到DFS(Depth First Study)
学习VIM中,欢迎访问我的blog  http://hi.baidu.com/newkedison
严重鄙视一切把论坛当成作业生成器和人肉搜索引擎的人
2008-04-22 13:37:52
中学者

等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
  得分:0 
学习///
本帖最近评分记录

樱花大战,  有爱.
2008-04-22 13:39:03
sunkaidong

来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4493
专家分:141
注 册:2006-12-28
  得分:0 
中学的?:用的神话了,呵呵.经常看见..很享受...
本帖最近评分记录

学习需要安静。。海盗要重新来过。。
2008-04-22 13:39:31
中学者

等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
  得分:0 
被燕子影响了....
----------------解决方案--------------------------------------------------------
  相关解决方案