利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!...,计算sinx的值,要求最后一项的值小于10^(-5)
问题描述:
利用泰勒级数sin(x)=x-x^3/3!+x^5/5!-x^7/7!...,计算sinx的值,要求最后一项的值小于10^(-5)
下面是我写的c程序,请问错在哪?
#include
#include
#include
double x,sinx =0,n =1,A =1; //A为(2n-1)!
void main()
{
\x05scanf("%f",&x);
\x05for(n=1;pow(x,2*n-1)/A > 0.00001; )
\x05{
\x05 sinx +=pow(-1,n-1)*pow(x,2*n-1)/A;
\x05\x05 n++;
\x05\x05 while (n>1 && A
答
scanf("%f",&x); 这儿改成scanf("%lf",&x);
x是double类型变量,scanf的格式是%lf
输出的时候也一样
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double x,sinx =0,n =1,A =1; //A为(2n-1)!
void main()
{
scanf("%lf",&x);
for(n=1;pow(x,2*n-1)/A > 0.00001; )
{
sinx +=pow(-1,n-1)*pow(x,2*n-1)/A;
n++;
A=A*(2*n-2)*(2*n-1);
}
printf("%lf %lf\n",sinx,n);
system("pause");
}
程序改了,你再看看