双汇集团oa:c语言,帮忙查错

来源:百度文库 编辑:高校问答 时间:2024/04/29 15:21:47
求sin x用泰勒公式逼近,误差小于1e-7
#include <stdio.h>
#include <math.h>
void main (void)
{long int rm(int x);
double f(double x,int y);
double x,y=0,item=1;
int i=1,s=1;
printf("please input x\n");
scanf ("%f",&x);
while (fabs(item)>=1e-7)
{item=s*f(x,i)/rm(i);
y=y+item;
i=i+2;s=-s;}
printf("sin(%f)=%f\n",x,y);
}
long int rm(int x)
{long int y=1;
int i;
for (i=1;i<=x;i++)
y=y*x;
return y;
}
double f(double x,int y)
{int i;
double z=1;
for (i=1;i<=y;i++)
z=z*x;
return z;
}
运行结果总是0
另外,请问pow(x,y)就是x的y次吗

pow(x,y)是x的y次
需要math.h
不过效率低