係統粉 > 電腦問答 > 其他問答

已解決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
相關問答
最新其他問答
解決方法