1. 程式人生 > >迭代演算法求sinx的值

迭代演算法求sinx的值

#include <stdio.h>
#include <math.h>
#define MIN 0.0005
 
int main()
{
	double x,sinx,item;
	int n=1,sign=-1;
	printf("輸入度數:\n");
	scanf("%lf",&x);
	while(x>360)
	{
		x=x-360;//讓其值在0~360 
	} 
	x=x*3.14159/180;//轉換成弧度
	sinx=x;
	item=x;
	while(fabs(item)>MIN)
	{
		item=item*x*x/((n+1)*(n+2))*sign;
		sinx=sinx+item;
		n=n+2; 
	} 
	printf("sinx=%lf\n",sinx); 
	return 0; 
}