我必須找出 C 編程語言中給定系列的總和。

根據公式,如果 n=1,則輸出應為 4(2/3)= 8/3
我寫的c編程代碼:
#include <stdio.h>
int main() {
int n, i;
float sum = 0;
printf("Enter the value of n: ");
scanf("%d", &n);
for (i = 0; i <= n; i ) {
sum = sum 4 * ((-1) ^ i / ((2 * i) 1));
}
printf("Sum of the series: %f", sum);
return 0;
}
我得到了輸出-8。
我在代碼中做錯了什么?
謝謝你。
uj5u.com熱心網友回復:
C 中的^運算子是異或,而不是求冪。沒有求冪運算子,但您可以考慮如何(-1)^i與其他運算子一起獲得效果,例如?:. (您可能會看到使用該pow函式的建議,但它用于浮點,而不是整數,因此不是一個好的插件。)
另一個問題是,將兩個整數相除會進行整數除法,這會截斷任何小數部分。您需要將分子或分母轉換為除法float或double除法之前。(通常double是比 更好的選擇float,除非您有一個記憶體使用量很大的大型陣列。)
uj5u.com熱心網友回復:
對上述答案的一個小優化:
你真的不需要標準函式pow來計算-1.
相反,您可以使用:
int minusOnePow(int i) {
return 1 - 2 * (i & 1);
}
解釋:
- 如果
i是偶數,則i & 1 == 0函式回傳1 - 如果
i是奇數,則i & 1 == 1函式回傳-1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/429107.html
