C语言中怎么求sinx的近似值

#include
#include
void main()
{
int i,n,b=1,c=0,m;
float x;
double a,d,e=0;
scanf("%f%d",&x,&n);
for(i=1;i<=(4*n+1);i+=2)
{
c+=1;
a=pow(x,i);
for(m=1;m<=i;m++)
{
b*=m;
}
d=a/b*pow(-1,(c+1));
e+=d;
}
printf("%.50f\n",e);
}

d=a/b
->
d=a/(double)b

http://blog.csdn.net/ZHangFFYY/article/details/53043885?locationNum=3&fps=1

#include
#include
#define ACCURARY 0.00000001

main()
{
int i=1,j=1,k,n=1,x;
printf("sinx=x-x^3/3!+x^5/5-x^7/7!...\n请输入一个x\n");
scanf("%d",&x);
double sinx=0;
for(i=1;fabs(t)>=ACCURARY;i+=2)
{
for(k=1;k<=i;k++)
{n=n*i;}
j++;
t=pow(-1,j)*pow(x,i)/n;

sinx=sinx+t;
}
printf("sin%d=%.8f\n",x,sinx);
}

编译一下,看看有没有问题。