#include<stdio.h>
#include<math.h>
int main()
{ int jc(int n);
float x,sin;
int m=1,i=1,b=0,c=2;
printf("请输入sinx中x的值:");
scanf("%f",&x);
do
{ b=pow(-1,c)*pow(x,m)/jc(m);
sin+=b;
m+=2;
c+=1;
i++;
}while(fabs(b)>=pow(10,-5)) ;
printf("sin x = %f\n",sin);
printf("总共累加了 %d 项。\n",i);
}
jc(int n)
{ int r;
if(n==1){
r=1;}
else{
r=n*jc(n-1);}
return r;
}
c语言利用泰勒级数求sinx,并统计多少项?不知道哪里出错,求大神
sin=0,b=0; \/\/有改动int m=1,i=1,c=2;printf("请输入sinx中x的值:");scanf("%f",&x);do{b=pow(-1,c)*pow(x,m)\/jc(m);sin+=b;m+=2;c+=1;i++;}while(fabs(b)>=pow(10,-5))
c语言利用泰勒级数求sin,并统计多少项?不知道哪里出错,求大神
scanf("%f",&x); 这儿改成scanf("%lf",&x); x是double类型变量,scanf的格式是%lf 输出的时候也一样
C语言用泰勒级数计算sinx,计算sin1,sin2都正确,sin3不正确,不知道哪里...
最好不要用这种算法,因为你的x=3的时候,time是9,就要计算17的阶乘,你可以用阶乘计算器试一下,17的阶乘已经很大了,超出了int型的范围,所以结果错误,最好换一种算法
C语言用泰勒级数求sinx 不知代码哪里错了 求大神解答
你的main函数中的do-while循环的判断条件写反了,把 while(fabs(term)<1e-5);改成 while(fabs(term)>=1e-5);就行了。
c语言编程,利用泰勒级数求解sinx,输入x值,求解sinx值,保留小数点后6位...
\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void){ int i,t; double sum,x,tmp,xx; printf("Input x(real -360°~+360°)...\\n"); scanf("%lf",&x); xx=x,x*=3.1415926535897932\/180;printf("%f\\n",xx); f...
泰勒级数展开式,y=arcsinx.求y(0)的N阶导数。
提示:用到二项展开式 (1+x)^a=1+a*x+a*(a-1)\/2!*x^2+a*(a-1)*(a-2)\/3!*x^3+...+a*(a-1)*(a-2)*...(a-n+1)\/n!*x^n+...=1+∑(n=1,∞)a*(a-1)*(a-2)*...(a-n+1)\/n!*x^n 其中,a为实数 将上面的x换成本题的-x^2,a换成本题的-1\/2,...
c语言编程题应用泰勒级数计算 sin(x)的值?
define N 12\/\/项数 double fac(double n){ double f = 0;if (n == 1 || n == 0)f = 1;else f = fac(n - 1) * n;return f;} double sinx(double x){ int z = -1;int i, j;double sin = x;for (i = 1; i <= N; i++){ j = 2 * i + 1;sin = sin +...
利用泰勒级数计算sinx的值,要求最后一项的绝对值小于,并统计出此时累加...
dm=1+2*i;\/\/累加项的分母 sin=sin+(nr\/factorial(dm))*sign;nr*=x*x;\/\/累加项的分子 sign=-sign;\/\/控制正负 i++;\/\/累加项个数 }while((nr\/factorial(dm))>=1e-5);printf("sin(x)=%.3f,count=%d\\n",sin,i);system("pause");} \/\/函数功能:计算阶乘 double factorial (...
c语言计算sin(x)值的程序。。。泪奔跪求各位高手如下程序哪里出错...
如果输入值1,会得到正确结果。但如果输入3,结果仍然会错误,根本原因在于你的求阶乘方法有缺陷,当这个正整数太大时,可能long int也表示不了它的阶乘值。你可以采用double数存储阶乘值。修改后的程序如下:include<math.h> include<stdio.h> double extra(int b){ int m;double g = 1.0;for(...
请大家看一下这个泰勒级数的c++程序,求sinx的
精确度的地方和我想的不一样,我认为只要 while(nor1>1e-6);就可以了.nor不用要了,我是学C语言,以上只是我的个人观点.