1. 程式人生 > >南郵程式設計線上程式設計題六:數列求和

南郵程式設計線上程式設計題六:數列求和

輸入一個雙精度實數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型,會出現精度問題,使得結果有誤