//利用泰勒公式求sin(x)的值。
#include
#include
#define esp 1e-5
void main()
{
int n;
double x,term,sum=0;
scanf("%f",&x);
term=x;
n=1;
while(fabs(term)>esp)
{
sum+=term;
n+=2;
term=term*(-1*x*x)/n/(n-1);
}
printf("sin(x)=%.20f",sum);
}
先讲点C语言常识。C语言对变量的类型要求很严格。对子程序的返回类型要求也颇多。这就导致如果变量定义,传递有错误,直接返回值为0。
举几个例子。
1,长浮点向整数转换
int a;
double b=0.42586;
a=(int)b;
printf(”a=d%”,a);
输出a=0;
2,强制取整函数INT
float f=0.786;
INT(f)值是0
float类型小数点后有效数字为6~7位。
你这都20位了,是不是超了?
换成double试试,有用记得采纳呐