我想使用泰勒级数打印sin(x)的值。
我必须添加术语,直到术语的绝对值变为<10e-06
#include <stdio.h>
#include <math.h>
double val(double, double);
int main(void){
double x,eps=10e-06;
printf("\nEnter value of x: ");
scanf("%lf",&x);
printf("\nCalculated value: %lf\n",val(x, eps));
return 0;
}
double val(double x, double eps){
int i;
double t=x, sum=0;
if(fabs(x)<= eps) return 0;
for(i=1;i<=20; i++){
sum+=t;
t*=-(x*x)/((2*i+1)*(2*i));
if(fabs(t)>=eps) break;
}
return sum;
}
但是我得到与输入相同的输出(即我在输出中得到x)。
有人可以告诉我怎么了。
问题在这里: