C语言程序设计:用泰勒级数计算cos

请各位C语言高手帮帮小弟

第1个回答  推荐于2016-10-31
#include "stdio.h"
#include "math.h"
#define PI 3.14156

float cosx(float x);
float fun_cos(float x, int m);

int main()
{
float x = PI/2;
printf("cos(%f)=%f\n",x,cos(x));//使用系统函数cos计算
printf("cosx(%f)=%f\n",x,cosx(x));//使用泰勒公式计算
return 0;
}

float fun_cos(float x, int m)
{
float ret_val;
int i;
if (m%2 == 0)
{
ret_val = 1.0;
}else
{
ret_val = -1.0;
}
for (i=1;i<=2*m;i++)
{
ret_val = ret_val * x/i;
}
return ret_val;
}
float cosx(float x)
{
float ret_val = 1.0;
float temp_ret;
int m = 1;
float Pi = 3.1415926;
if (x > 2*Pi || x < -2*Pi)
{
x = x-((int)(x/(2*Pi)))*(2*Pi);
}
do
{
temp_ret = fun_cos(x,m++);

ret_val += temp_ret;
} while (temp_ret>0.00005 || temp_ret<-0.00005);
return ret_val;
}本回答被提问者采纳
第2个回答  2008-04-14
#include "stdio.h"
double f(double n)
{
double m=1,i;
for(i=1;i<=n;i++)
m*=i;
return m;
}
int main()
{
double x,j,s=1,a,y;
printf("input x:\n");
scanf("%lf",&x);
for(j=1,a=1;j<=20;j++)
{
a*=(-1)*x*x;
y=f(2*j);
s+=a/y;
}
printf("cos=%lf\n",s);
return 0;
}
相似回答