用C语言程序算sinX的值题目:利用泰勒级数sinx≈x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…,计算sinx的值.要求最后一项的绝对值小于10^-5,并统计出此时累加了多少项.#include #include void main(){ long double x,sinx; int i=0,j=1; long p=1; printf("In sinx,x="); scanf("%f",&x); do{ i++; if(i=1) sinx=(pow(x,j))/p; else if(i%2==0) sinx=sinx-(pow(x,j))/p; else sinx=sinx+(pow(x,j))/p; p=p*(j+1)*(j+2); j=j+2; }while(pow(x,j)/p

问题描述:

用C语言程序算sinX的值
题目:利用泰勒级数sinx≈x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-…,计算sinx的值.要求最后一项的绝对值小于10^-5,并统计出此时累加了多少项.
#include
#include
void main()
{
long double x,sinx;
int i=0,j=1;
long p=1;
printf("In sinx,x=");
scanf("%f",&x);
do{
i++;
if(i=1)
sinx=(pow(x,j))/p;
else if(i%2==0)
sinx=sinx-(pow(x,j))/p;
else
sinx=sinx+(pow(x,j))/p;
p=p*(j+1)*(j+2);
j=j+2;
}while(pow(x,j)/p

程序有几个问题:
1.long double型数据输入输出都要用%lf,而你都用的是%f.
2.if(i=1)此处应该为(x==1)
3.while(pow(x,j)/p1e-5
目前就发现这么多错误,但是答案貌似不对.你再检查检查.