我的代码是:
#include<stdio.h>#include<math.h>double sinf(double);int main(void){ double x; printf("Input a number x and you will get sin(x):\n"); scanf("%lf",&x); printf("sin%.2lf=%.3lf",x,sinf(x)); return 0;}double sinf(double x){ double sin,terms;terms=1.0;sin=0.0; int b,n; long z; z=1; for(n=1;terms>=1e-7;n+=2) { if((n+1)/2%2==1) b=1; else if ((n+1)/2%2==0) b=-1; if(n==1) z=1; else z=z*(n-1)*n; terms=pow(x,n)/z; sin+=b*terms; } return sin;}
当输入值<3如0.2,0.5时都是正确的,可是当输入类似3,3.14这类数的时候结果却不正确,求解答!
编译器是DEV-C
大神请指出我的代码哪里有问题,不是重新写一个,谢谢!