系统粉 > 电脑问答 > 其他问答

已解决C++求圆周率pi

提问者:j烟花易冷i  |  浏览次  |  提问时间:2017-03-13  |  回答数量:9

C++求圆周率pi请问我的程序哪里写错了? 为什么输出是4呢? #include<iostream.h> #include<math.h> int main() {         int sign=1,n=2;         double pi=1,item=0,s=0;         while(fabs(item)>0.0000001)         {                 s=2*n-1;                 sign=-sign;                 item=sign*1/s;                 pi=pi+item;                 n++;         }         cout<<"pi="<<pi*4<<endl;         return 0; }

已有9条答案
火化场副总

火化场副总

回答数:199  |  被采纳数:3

把int sign改成double sign或者将sign*1/s改成sign*1.0/s
2017-03-13 06:52:40
赞 19
◥▇▇▇╋q

◥▇▇▇╋q

回答数:212  |  被采纳数:149


回答错误。
2017-03-13 08:55:21
赞 21
雀婶

雀婶

回答数:56  |  被采纳数:29




你调试一下就知道,while里面的代码根本就没执行,把item改成1
2017-03-13 10:01:50
赞 5
杀马特704

杀马特704

回答数:110  |  被采纳数:141

C++编程的头文件 要这样写吧 :
#include<iostream>
using namesapce std;
2017-03-13 17:17:55
赞 11
硬汉摇身变女神

硬汉摇身变女神

回答数:33  |  被采纳数:97

double pi=1,item=0,s=0;
while(fabs(item)>0.0000001)
中item初值为0,其绝对值也不会大于0,永远不会满足循环条件。
2017-03-13 18:09:01
赞 3
没有烟抽的日孖

没有烟抽的日孖

回答数:95  |  被采纳数:71


终于正确了。请教一下:为什么把 item初值改为1,pi初值改为0运行结果就正确呢?
2017-03-13 15:17:05
赞 9
喃喃北北不自语

喃喃北北不自语

回答数:167  |  被采纳数:114


但是item是一个变量啊,它是用来存放sign*1/s的值的啊,为什么不会满足循环条件呢?
2017-03-14 00:45:37
赞 16
尋找々甯静√

尋找々甯静√

回答数:220  |  被采纳数:90


我知道什么问题了,谢谢你的提示。
2017-03-14 01:28:15
赞 22
影子之最

影子之最

回答数:193  |  被采纳数:25


我懂了,谢谢你的提示。
2017-03-13 12:55:35
赞 19
相关问答
最新其他问答
解决方法