天天看點

C語言程式設計--根據麥克勞林公式計算任意角的正弦餘弦

C語言程式設計–根據麥克勞林公式計算任意角的正弦餘弦

正弦餘弦 麥克勞林公式

C語言程式設計--根據麥克勞林公式計算任意角的正弦餘弦

問題

輸入格式

x ϵ
           

注:x 為角(機關:弧度),ϵ 為計算精度。

輸出格式

y
           

正弦輸入樣例

注:y 為 x 的正弦(餘弦)值。用 %f 格式限定符輸出 6 位小數。

要求:輸入任意角度得出計算值,所計算的最後一項的絕對值小于 ϵ。

C語言代碼

1. 求正弦

C語言程式設計--根據麥克勞林公式計算任意角的正弦餘弦
#include <stdio.h>
#include <math.h>
#define PI 3.141592654
int main()
{
	int i=1,b=1;
	double x,a,c,m,s=0;
	scanf("%lf %lf",&x,&c);
	
	while(fabs(x)>(PI))
	{
		x=x-PI;			//轉化為小角度
	}
	a=x;
	while(fabs(a/b)>=c)	//判斷條件 精确度
	{ 
	s+=(a/b);
	a=-1*a*x*x;			//分子 
	b=b*(2*i)*(2*i+1);	//分母 
	i++;
	}
	printf("%0.6f\n",s);//格式輸出
	return 0;
}
           

2.求餘弦

輸入樣例1

1.047197551196598 0.00000001
           

輸出樣例1

0.500000
           

輸入樣例2

315.2064629101759 0.000001
           

輸出樣例2

0.500000
           
#include <stdio.h>
#include <math.h>
#define PI 3.141592654
int main()
{
	int i=1,b=2;			//注意
	double x,c,m,s=1;		//注意b s m 因正弦餘弦公式的不同 是以初始條件 會微調
	scanf("%lf %lf",&x,&c);
	while(fabs(x)>(PI))
	{
		x=x-PI;
	}
	m=-x*x;					//注意
	printf("%.10f\n",m);
	while(fabs(m/b)>=c)		//精确度
	{ 
	s+=(m/b);
	printf("%0.6f\n",s);
	m=-1*m*x*x;				//分子
	b=b*(2*i+1)*(2*i+2);	//分母
	i++;
	}
	printf("%0.6f\n",s);
	return 0;
}
           

繼續閱讀