C语言编程–根据麦克劳林公式计算任意角的正弦余弦
正弦余弦 麦克劳林公式
问题
输入格式
x ϵ
注:x 为角(单位:弧度),ϵ 为计算精度。
输出格式
y
正弦输入样例
注:y 为 x 的正弦(余弦)值。用 %f 格式限定符输出 6 位小数。
要求:输入任意角度得出计算值,所计算的最后一项的绝对值小于 ϵ。
C语言代码
1. 求正弦
#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;
}
更多推荐
C语言编程--根据麦克劳林公式计算任意角的正弦余弦
发布评论