C语言 泰勒公式的sinx问题
求sinx=x-x3/3!+x5/5!-……(-1)n+1x2n-1/(2n-1)!终止条件:最后一项(-1)n+1x2n-1/(2n-1)!的绝对值小于10的-6次方我...
求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 你运行没有结果啊... 展开
我自己编写的程序如下:
#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打的数,否则无法得到结果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询