c語言計算的值求改錯,C語言計算 的值求改錯

2022-03-01 06:44:27 字數 1377 閱讀 1290

1樓:匿名使用者

t = t * i / (2 * i + 1); 這樣 運算時,先算t*i ,因為t是浮點數,所以t*i結果就是浮點數 再除以整數,結果是浮點數

而:t = t * (i / (2 * i + 1)); 這樣,先算括號中的,i / (2 * i + 1) i是整數,所以,結果還是整數,小數部分會被丟棄,因此,結果總是0

2樓:匿名使用者

此處變數i是int型的,故子表示式i / (2 * i + 1)必然也是一個int型的資料,故而子表示式i / (2 * i + 1)的值必然始終都是0

而表示式t * i / (2 * i + 1)根據運算子結合性可知即(t * i) / (2 * i + 1),由於t是double型,故子表示式(t * i)必然是double型,不會產生上述問題

或者你可以直接改成t = t * (i / (2.0 * i + 1)); 也可以,這個地方就是隱式型別轉換的問題而已

3樓:匿名使用者

不是括號的問題,是整數相除的問題。

整數相除的時候會直接捨去小數部分,比如3/2=1去掉括號後,因為先計算t*i,其中t為浮點型,相除結果是也會是浮點,最後能得到正確的值。

加上括號,那麼就會先進行括號中運算,i/(2*i+1)無論i是什麼值,其結果都是0

用c語言程式設計計算π的值

4樓:冰弦

#include

#include//開根號我用了數學庫函式int main()

printf("%.14lf\n",pi);//小數點後14位return 0;}

5樓:匿名使用者

沒看明白,不過這個形式不是可以用遞迴去寫的麼

c語言求π的值

6樓:匿名使用者

原理是 pi=sqrt((1/1^2+1/2^2+1/3^2+...)*6)

#include

#include

int main()

pi=sqrt(sum*6);

printf("%lf",pi);

}顯示效果如下:

7樓:聽不清啊

#include

int main(){

int i=1;

double sum=1,b=3,a=1,m=1e-10;

while(a/b>=m){

sum=sum+a/b;

i++;

a=a*i;

b=b*(i+i+1);

printf("%.10lf\n",2*sum);

return 0;

c語言編輯計算,。。。。c語言。。編輯。。。計算1 1000內所有含6的數的和。。求解。求技巧

完整 給你參考 include include int main printf n n1 1000包含6的數的合為 d n sum getch return 0 借用一樓的 稍做下修改 int main void a 10 printf sum ld n sum return 0 注意是含6的數,不...

關於c語言的計算問題,關於c語言的計算問題

這涉及c的細節,我建議你記住 程式中的常量其實也存放在記憶體單元中,c規定運算運算子兩旁同類時運算結果與參與運算的數的型別相同,事實上時 加法器直接處理那兩個記憶體單元中的資料,並將結果送到另一記憶體單元,而這裡的 另一記憶體單元也是兩位元組長,因此他只接收到結果的低二位元組部分 及1的補碼 所以,...

求大佬指點c語言程式設計,C語言計算程式設計求大佬指點

include void main break if k printf 無此數 du else printf d之前的平zhi均數為 f n d之後dao的平均數為 f m,sum1,m,sum2 c語言計算程式設計 求大佬指點 用c語言分別bai輸出個位十du位和百位的數字,zhi可以根據下面步驟...