#includevoid main(){ float x,a=0,b,t,n=1,s=1,c=1; printf("请输入x的值:"); scanf("%f",&x); do { t=x; b=1; a=a+s*t; s=-s; t=t*x*x; b=b*(n+1)*(n+2); n=n+2; t=a/b; c=c+1; }while(t>1e-5); printf("%f%f",a,c);}逻辑应该是错了
网页链接
For条件错误改为大于且把精度变大一点,否则永远为真。你那个变号也不能实现总为正,可用J乘负一实现。最后你那阶乘也求错了,最好在加个变量直接不断加一来求阶乘, 手机回答不便写代码,自己好好改下吧,那样效果较好。
算法有问题了,while(n>=1E-6),这个意思是n>=0.000001时循环,这意味着必须n有可能小于这个数才可能出结果,实际上sin(1.1)在0.02左右,也就是说无法退出循环,肯定不出结果了。
/*sinx=x-x^3/3!+x^5/5-x^7/7!...*/
#include
#include
#define ACCURARY 0.00000001
main()
{
\tint i=1,j=1,k,n=1,x;
\tprintf("sinx=x-x^3/3!+x^5/5-x^7/7!...
请输入一个x
");
\tscanf("%d",&x);
\tdouble sinx=0;
\tfor(i=1;fabs(t)>=ACCURARY;i+=2)
\t{
for(k=1;k<=i;k++)
{n=n*i;}
j++;
t=pow(-1,j)*pow(x,i)/n;\t
sinx=sinx+t;
\t}
\tprintf("sin%d=%.8f
",x,sinx);
}
你编译一下,看看行不,我好久没弄了。
您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-..
下面给出算20项的程序。
#include"math.h"
#include"stdio.h"
void main()
{
double x=0,y=0,z=1,s=1,mynum=0;
int i=1 ,j=0, k=1;
scanf("x=%f",&x);
for(i=1;i<20;i++)
z=1;k=1;
for(j=1;j<=2*i-1;j++)
{
z=x*z;//算j次方
k=k*j;//算阶乘}
s=-j*pow(-1,i);//pow(a,b)是a的b次方
z=z*s/k;
mymun=mynum+z;
}
printf("sinx=x-x^3/3!+x^5/5!-..");
printf("sinx=%f",mynum);
getch();
}
c语言编程求sinx的近似值(泰勒展开)?_
: 您好,是这样的:泰勒展开是这个:sinx=x-x^3/3!+x^5/5!-..下面给出算20项的程序.#include"math.h"#include"stdio.h"void main(){double x=0,y=0,z=1,s=1,mynum=0;int i=1 ,j=0, k=1;scanf("x=%f",&x);for(i=1;i<20;i++)z=1;k=1;for(j=1;j<=2*i-...
用C语言求多项式求sinx的近似值._
: #include double factorial(double n) {//求n! double result=1; for(int i=1;i<=n;i++) { result*=i; } return result; } double sinx(double x,int n) {//求sin(x),精度为n double result=0; bool bAdd=true;//是加还是减 for(int i=1;i<=n;i++) { if(bAdd) { result+...
C语言计算sinx的近似值_
: /*sinx=x-x^3/3!+x^5/5-x^7/7!...*/#include#include#define ACCURARY 0.00000001 main() { int i=1,j=1,k,n=1,x; printf("sinx=x-x^3/3!+x^5/5-x^7/7!...\n请输入一个x\n"); scanf("%d",&x); double sinx=0; for(i=1;fabs(t)>=ACCURARY...
c语言求sinx的近似值!!!!!急_
: 修改及测试代码如下:#include #include double fact(n)//数据类型使用有误 { int x; double y; y=1; for(x=1;x<=n;x++){ y=y*x; } return y; } int main() {//思路有些乱 double i,sum,x; int n=1,flag=1; scanf("%lf",&x); i=x;//第一项 sum=...
c语言求sinx的近似值,下面是我写的程序,不知道哪里出错了,求高人指点!_
: 我也不知道哪出错了.goto弄的人晕头转向啊.Sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!.....
请问c语言的求sinx的近似值_
: 你的sigh变量没赋初值,所以while循环没执行,你可在while循环前给sigh赋初值,如sigh=1.0
C语言初学者请教!编程求sinx近似值,已写程序,求改错!_
: S的值求错了...1!=13!=1*2*3;5!=1*2*3*4*5;(2*n-1)!=1*2*........*(2*n-1);
编程 求sinx近似值_
: #include#includeint jiecheng(int x);void main(){ int i=1,j=1,x; double sinx=0,sinx1=1,doubleNum; scanf("%d",&doubleNum); scanf("%d",&x);printf("\n"); for(i=1;fabs(sinx-sinx1)>=doubleNum;i+=2) { j++; sinx1=sinx; sinx=sinx...
【用C语言编写sinx的近似值,精确到10^(_6)sinx=x-x^3/3!+x^5/5!-x^7/7!+…+】
: 给,已经编译运行确认:#include #include #include double Factorial(int n) //求?乘 { int i=0; double factorical=1; if(n==0) return 1; for(i=1;i 1e-6){sum += t;++m;sign *= -1;}return sum;}int main(){doubl...
c语言求sinx的近似值,用泰勒公式,精确到10e_6._
: 主要的精神是这样 sum=0; while(1) {term=....;newSum=sum+term;if(newSum==sum) break;sum=newSum; } return sum;