作业帮 > 综合 > 作业

C语言编程求正弦 sin(x) 的近似值如题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/26 19:48:14
C语言编程求正弦 sin(x) 的近似值如题
已知求正弦 sin(x) 的近似值的多项式公式为:sin(x) = x - x 3 /3!+ x 5 /5!- x 7 /7!+ …… + (-1) n x 2n+1 /(2n+1)!+ … 编写程序,要求输入 x (单位是弧度)和ε,按上述公式计算 sin(x) 的近似值,要求计算的误差小于给定的ε.这个程序为什不对呢,正确的是什么 #include #include main(void) { float x,e,s,d,n; n=1; s=0; scanf("f%f%",&x,&e); d=fabs(s-sin(x)) while(d>e) s+=(pow(x,n))/(n!)-(pow(x,n+2))/((n+2)!); n+=4; printf("f%\n",&s); }
你这程序存在很多语法错误例如单精度浮点格式符是%f,不是f%,求阶乘不能用!,下面是我的程序,#include #include int jiecheng(int x);//递归求阶乘 main() { double x,e,s,d; int n; n=0; s=0; printf("依次输入x和误差e\n"); scanf("%lf%lf",&x,&e); d=s-sin(x); if(d0){ if(n==0)s+=x; else{ s+=(pow(-1,n))*x*(2*n+1)/jiecheng(2*n+1); d=s-sin(x); if(d1)return x*jiecheng(x-1); return 1; } 我用了双精度浮点,64位,但因为过程出现很多位小数,只要你设置的误差太小,依然会出现数据溢出,你可以尝试一下无符号双精度,或者设置其他条件限制