鱼C论坛

 找回密码
 立即注册
查看: 2743|回复: 5

关于算圆周率问题。。请大家帮个忙

[复制链接]
发表于 2012-6-15 22:03:09 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>
#include <math.h>
void main()
{
int s;
float n,t,pi;
t=1;  pi=0;  n=1.0;   s=1;
while(fabs(t)>1e-6)
{
  pi=pi+t;
  n=n+2;
  s=-s;
  t=s/n;
}
pi=pi*4;
printf("pi=%10.6f\n",pi);
}

程序里面的s为什么能自动切换  正  负  呢?

最佳答案

查看完整内容

每次循环时,将符号改变一次啊?只要是t的绝对值没有没有大于1e-6循环就持续进行.每执行一次s=-s,就改变一次符号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-15 22:03:10 | 显示全部楼层
每次循环时,将符号改变一次啊?只要是t的绝对值没有没有大于1e-6循环就持续进行.每执行一次s=-s,就改变一次符号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-16 10:11:24 | 显示全部楼层
-s读取s的值并通过运算符-得到一个新值,这个新值就是原来s值的相反数

所以,表达式-s得到的新值(或者说表达式-s的值)就是原来s值的相反数

所以,s = -s就相当于s = 原来s值的相反数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-17 22:03:03 | 显示全部楼层

s=-s;
-s不是总是赋值给s吗?怎么会自动变换  正  负

应该总是-s,才对啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-17 22:03:49 | 显示全部楼层
仰望天上的光 发表于 2012-6-16 10:11
-s读取s的值并通过运算符-得到一个新值,这个新值就是原来s值的相反数

所以,表达式-s得到的新值(或者说 ...

s=-s;
-s不是总是赋值给s吗?怎么会自动变换  正  负

应该总是-s,才对啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-6-17 22:07:37 | 显示全部楼层
仰望天上的光 发表于 2012-6-16 10:11
-s读取s的值并通过运算符-得到一个新值,这个新值就是原来s值的相反数

所以,表达式-s得到的新值(或者说 ...

还是“-s”这个红色的符号作用是取原来的值相反的数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 11:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表