南郵程式設計線上程式設計題六:數列求和
阿新 • • 發佈:2019-02-19
輸入一個雙精度實數x,計算並輸出下式的值,直到最後一項的絕對值小於10-5(保留兩位小數),s=x-x2/2!+x3/3!-x4/4!+…
說明:(1)scanf之前無需用printf給提示資訊。
(2)求和結果用"%.2f"控制輸出格式。
測試用例的輸入及輸出結果如下:
測試用例:輸入 |
測試用例:輸出 |
1< 回車 > |
sum=0.63 |
3.5< 回車 > |
sum=0.97 |
5.0 < 回車 > |
sum=0.99 |
程式碼如下:
#include <stdio.h> int main() { double x, t = 1, i = 1, sum = 0; int sign = 1; scanf("%lf", &x); do { t = t * x/i; sum += sign*t; sign = -sign; ++i; } while(t >= 1e-5); printf("sum=%.2f\n", sum); return 0; }
在這題中不能使用pow函式,因為pow函式是double型,會出現精度問題,使得結果有誤