标题:为什么1=-1 会来回交替。 真心求教!
只看楼主
jerryhwq
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-4-21
结帖率:100%
已结贴  问题点数:1 回复次数:8 
为什么1=-1 会来回交替。 真心求教!
C语言用循环求π/4=1-1/3+1/5-1/7+1/9-....最后一项的绝对值小于10的负6次幂为止
#include<stdio.h>
#include<math.h>
main()
{   int s;
    float n,t,pi;
    t=1.0;   /*加1.0是因为是浮点数么?*/
    pi=0;
    n=1.0;
    s=1;
    while(fabs(t)>1e-6)
    {   pi=pi+t;   /*pi=pi+t可以写成pi+=t么?感觉这表达才正规,所得T值赋给pi,pi在累加。*/
        n+=2.0;
        s=-s;   /*最看不懂的就这个*/
        t=s/n;
    }
    pi=pi*4;
    printf("pi=%f\n",pi);
   
}
为什么 s=-s 会来回交替1和-1。-s应该只是一个整数了吧。和赋值还有关系么。好像只有--和++ -=能赋值右边  .s-=1  --s s--
pi=pi+t可以写成pi+=t么?感觉这表达才正规,所得T值赋予pi,pi在累加。
难道 s=-s 可以读作1.-1.1.-1来回交替么。C教材没看到过这。


[ 本帖最后由 jerryhwq 于 2012-4-21 19:02 编辑 ]
搜索更多相关主题的帖子: 真心 include 绝对值 C语言 
2012-04-21 18:53
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
得分:1 
加1.0是因为是浮点数么?
不加应该也可以

pi=pi+t;   /*pi=pi+t可以写成pi+=t么?感觉这表达才正规,所得T值赋给pi,pi在累加。*/
两种写法一样

s=-s;   /*最看不懂的就这个*/
因为要实现加减交替,所以要这样,s=1,当运行到s=-s时,s=-1,再一次运行s=-s时,s=1.依次类推。
 
2012-04-21 19:06
凌烟
Rank: 2
等 级:论坛游民
帖 子:30
专家分:41
注 册:2011-1-10
得分:0 
s=-s;//s=(-1)*s,这样可以理解了吗?
2012-04-21 21:43
简体字01
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:137
注 册:2012-3-4
得分:0 
顶二楼。
2012-04-21 21:54
羽墨离殇
Rank: 2
等 级:论坛游民
帖 子:13
专家分:11
注 册:2012-3-10
得分:1 
例如:s=1,现执行s=-s后s=-1再执行s=-s后s=1;主要是 每经过一次执行,s就被换成其他值。
2012-04-21 22:15
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
得分:0 
s=-s是个赋值语句,左边的是变量名称,右边的才是数值,当s=1时,s=-s,就是把-1赋给s

最基础的往往是你最容易忽略的!
2012-04-21 23:22
windofland
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-12-1
得分:0 
s=-s其实就是改变符号,由于π/4=1-1/3+1/5-1/7+1/9……
程序代码:
    {   pi=pi+t;
        n+=2.0;
        s=-s;  
        t=s/n;
    }
这里s表示的是符号
t的值是1/1(s=1)、-1/3(s=(-1))、1/5(s=1)、-1/9(s=(-1)))、……

2012-04-23 21:38
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
得分:0 
回复 3楼 凌烟
可以这么理解
2012-04-23 22:30
ln6265431
Rank: 5Rank: 5
等 级:职业侠客
帖 子:66
专家分:325
注 册:2012-3-29
得分:0 
s是变量,可以赋值啊,刚开始赋值s=1;然后用s=-s;等号右边的s是,右边就是求-1了  
我也是刚学c语言这点好理解啊 看看老谭的c语言程序设计讲解很好懂,你还是看一看变量的基本定义吧!
2012-04-23 23:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366298-1-1.html




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

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