C语言 泰勒公式的sinx问题

求sinx =x-x3/3!+x5/5!-…… (-1)n+1 x2n-1 /(2n-1)! 终止条件:最后一项 (-1)n+1 x2n-1 /(2n-1)!的绝对值小于10的-6次方

我自己编写的程序如下:
#include <stdio.h>
#include <math.h>
main()
{
int i,b=1;
float x,a,s;

printf("输入x的值");
scanf("%f\n",&x);
x=a;
for(i=1;;i++)
{
s=0;
a=-a*x*x;
b=b*2*i*(2*i-1);
s=s+a/b;

if(fabs(a/b)<1e-6) break;
printf("%d",s);
}
}

那位高手帮帮我看下错那里?
如果错太多情帮忙重写
题目要求必须有以下关系变量,i是项数
a=-a*x*x; a的初值为x
b=b*2*i*(2*i-1); b的初值为1
函数要用此关系式 s=s+a/b;
Draconious 你运行没有结果啊...

x=a x在这里又变成了0

printf("%f",s); 为什么要把浮点数输出为整数?

b=b*2*i*(2*i-1);这个式子就是错的

#include <stdio.h>

#include <math.h>

int main()

{

int i=1,b=1;

float x,a,s=0;

printf("输入x的值");

scanf("%f",&x);

a=x;

while(fabs(a/b)>=1e-6){

s+=(a/b);

a=-1*a*x*x;

b=b*2*i*(2*i+1);

i++;

}

printf("%f",s); 

return 0;

}

这是我运行的结果,代码是C++版本,因为我的VC不能写C。

这个算法有个致命的缺点,你不能输入比1.7打的数,否则无法得到结果。

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言 根据泰勒公式求sinx的近似值
printf("sinx=x-x^3\/3!+x^5\/5!-..");printf("sinx=%f",mynum);getch();}

C语言 泰勒公式的sinx问题
x=a x在这里又变成了0 printf("%f",s); 为什么要把浮点数输出为整数?b=b*2*i*(2*i-1);这个式子就是错的 include <stdio.h> include <math.h> int main(){ int i=1,b=1;float x,a,s=0;printf("输入x的值");scanf("%f",&x);a=x;while(fabs(a\/b)>=1e-6){ s+=(...

c语言求泰勒公式sinx近似值
你的程序错误太多。直接给出按泰勒公式展开求sinx近似值的程序。include <stdio.h>#include <math.h>int main(){double i,x,k,s=0;scanf("%lf",&x);k=x;for(i=1;abs(k)>=0.0000001;i++){s+=k;k*=-x*x\/(i*2*(i*2+1));}printf("%.3lf",s);return 0;}\/\/运行示例截...

c语言,如何用泰勒公式求sinx?
\/\/希望我的回答对你的学习有帮助#include<math.h>#include<stdio.h>int main(){int n=1,count=1;float x;double sum ,term;printf("input x:");scanf("%f",&x);sum=x;term=x;do{term=-term*x*x\/((n+1)*(n+2));sum=sum+term;n=n+2;count++;}while (fabs(term)>=1e-5...

C++编程4. 【问题描述】根据泰勒公式,求sinx的值。
include <stdio.h>int main(){int i;double x,r = 0, item = 0;scanf("%lf",&x);for(i = 1, item = x; i <= 10; i ++){if(i != 1) item = item * x * x * -1 \/ (2*i-1)\/(2*i-2);r += item;}printf("sin(x)=%.2lf\\n", r);} ...

C++编程【问题描述】根据泰勒公式,求sinx的值。
double sin(double x){ double s;if(x>2*PI)x-=2*PI*(int)(x\/PI\/2);if(x*2>PI)if(x<PI)s=sin(PI-x);else if(x*2<PI*3)s=-sin(PI-x);else s=-sin(x);else { double a=x,b=1,t,r=0,xx=x*x,s=1,i=3;do { t=a\/b;r+=t*s;a=a*xx;b=b*i;i+=2;...

C++用泰勒公式求sinx值有问题
include<cmath> using namespace std;const double PI=3.141592653;int main(){ long double x,fsin=0;long double jecheng(int n);int l,xiangshu=1,t=1,i=1,m=1;cin>>x>>l;cout<<"sin"<<x<<"=";x=x*PI\/180;while(xiangshu<=l){ fsin=fsin+t*pow(x,m)\/jecheng(i);i...

sinX的泰勒公式展开式用C语言怎么编写?非常急
你这个要求最后一项的近似值的精度...我给你的是10的-5次方的精度。include<math.h> include<stdio.h> main(){ int n=1,count=1;float x;double sum ,term;printf("input x:");scanf("%f",&x);sum=x;term=x;do { term=-term*x*x\/((n+1)*(n+2));sum=sum+term;n=n+2;co...

C语言编写sin函数?求教!
C语言中要编写sin函数,实质上要利用sin的泰勒公式,然后根据泰勒公式,将其中的每一项进行分解,最后用循环,累加计算出最终结果 下面用for循环实现sin的算法,程序代码如下:include<stdio.h> include<math.h> void main(){ int i;float x,sum,a,b; \/\/sum代表和,a为分子,b为分母 char s...

怎样用泰勒公式计算sinx?
泰勒公式记住,tanx=x+x^3\/x+o(x^3) sinx=x-x^3\/6+o(x^3),相减就好了,也适用于其他式子。tanx -sinx =tanx-tanx·cosx=tanx(1-cosx)~x·(x² \/2)=x³\/2。等价无穷小替换是计算未定型极限的常用方法,它可以使求极限问题化繁为简,化难为易。求极限时,使用等价无穷...

相似回答