求sin的近似值,要求误差小于1e-6,就是累加项的绝对值小于1e-6就可以了 不能用pow,大家帮我看看我的代码错哪了 跑不出来的 一直在
#include<stdio.h>#include<math.h>
float jc(int a)
{
int sum=1,i;
for(i=1;i<=a;i++)
{
sum=sum*i;
return sum;
}
}
float cf(int a)
{
int sum=a,i;
for(i=1;i<=a;i++)
{
sum=sum*a;
return sum;
}
}
float qsin(float x)
{
int flag=1,a=1;
float sum=x;
do
{
flag=-flag;
sum=sum+flag*cf(2*a+1)/jc(2*a+1);
a+=2;
}while(fabs(flag*cf(2*a+1)/jc(2*a+1))>=1e-6);
return sum;
}
int main()
{
int n;
float z;
scanf("%d",&n);
z=qsin(n);
printf("sin(%d)=%f",n,z);
return 0;
}