c语言,cos(x)的近似计算

2025-03-06 19:28:45
推荐回答(4个)
回答1:

#include
#include
void main()
{
float sum=0,s=1,t=1,x; /*s,t最好用浮点,要不然经常溢出,另外初值应当是1*/
int i,k=1;

scanf("%f",&x);

for(i=0;i<=100;i+=2) /*最多50项*/
{
if ((t/s)>=1e-6)
{
sum+=(t/s)*k;
k*=-1;
}
else
break;
s*=(i+1)*(i+2); /*阶乘的计算要乘以两项*/
t*=x*x;
}
printf("x=%f\nmycos=%f\tcos=%f\n",x,sum,cos(x));
getch();
}

回答2:

#include
#include
#include

void main()
{
float sum=1.0,x,s=1,t=1;
int i,k=1,n=1;
scanf("%f",&x);

for(i=2;i<=20;i=i+2)
{
s = s * i * (i-1);
t = t * x * x;
k = k * (-1);
if( fabs(t/s) >=1e-6) { sum=sum + (t/s)*k; } else break;
}
printf("%f -- %f\n",sum,cos(x));
}

试算:
x=0
1.000000
x=0.5
0.877582

回答3:

#include
#include
#include
void
main()
{
float
sum=1.0,x,s=1,t=1;
int
i,k=1,n=1;
scanf("%f",&x);
for(i=2;i<=20;i=i+2)
{
s
=
s
*
i
*
(i-1);
t
=
t
*
x
*
x;
k
=
k
*
(-1);
if(
fabs(t/s)
>=1e-6)
{
sum=sum
+
(t/s)*k;
}
else
break;
}
printf("%f
--
%f\n",sum,cos(x));
}
试算:
x=0
1.000000
x=0.5
0.877582

回答4:

sdcdsvasdfvsdvsdafvafdrgbvfdvfdrvdsfvardfarsdfsdarfar