c语言中用函数编译sinx

来源:百度知道 编辑:UC知道 时间:2024/06/20 14:12:30
我编的为什么不行呢?哪错了,请给我指出,好吗!
#include<stdio.h>
#define k 16
#define x 0.57
void main()
{
float d();
int e();
int i,si;
float sum=0;
for(i=1;i<(k/2)+1;i++)
si=d()/e();
sum=sum+si;
printf("sin%f=%f\n",x,sum);
}
float d()
{
int i,y;
for(i=1,y=1;i<k;i=i+2)
y=x*y;
return(y);
}
int e()
{
int i;
int y=1;
for(i=1;i<k;i=i+2)
y=y*i*(-1);
return(-y);
}

算法没看懂,暂时发现一个错误。d()里面y要声明为float型。你现在用的int型,0.57*1=0.57,赋给int型变量的话,就变成0了

for(i=1;i<(k/2)+1;i++)
si=d()/e();
sum=sum+si;

你这循环是只包括一句的啊