#include<stdio.h>
double f(double x,int y)
{
double s=1;
for(int i=0;i<y;i++)
{
s=s*x;
} return s;
}
int g(int x)
{
int s=1,k=0;
for(int i=0;i<x;i++)
{
k++;
s=k*s;
}
return s;
}
void main(void)
{
int b=1,i=1;
double x,c=0,sinx=0;
scanf("%lf",&x);
do
{
i++;
c=f(x,b)/g(b);
sinx=c*f(-1,i)+sinx;
b=b+2;
}
while(c<=f(0.1,6));
printf("%.5lf\n",sinx);
}
只是这个程序写得太复杂了:
#include<stdio.h>
double f(double x,int y)
{
double s=1;
for(int i=0;i<y;i++)
{
s=s*x;
} return s;
}
double g(int x)
{
double s=1;
int k=0;
for(int i=0;i<x;i++)
{
k++;
s=k*s;
}
return s;
}
main(void)
{
int b=1,i=1;
double x,c=0,sinx=0;
scanf("%lf",&x);
do
{
i++;
c=f(x,b)/g(b);
sinx=c*f(-1,i)+sinx;
b=b+2;
}
while(c>=1e-6);
printf("%.5lf\n",sinx);
}