c语言 利用泰勒级数sin(x)≈计算sin(x) 的值.

sin(x)=x-(x3/3!)+(x5/5!)-(x7/7!)+(x9/9!)-...求指点啊,,答案老是不对标准格式如下:输入:3输出:0.141120,9屏幕显示样... sin(x)=x-(x3/3!)+(x5/5!)-(x7/7!)+(x9/9!)-...求指点啊,,答案老是不对

标准格式如下:
输入:3
输出:0.141120,9
屏幕显示样式如下:
3
0.141120,9

我的程序

#include "stdio.h"
void main()
{
float t=1,i,x,p=1,z=1,s=0,u=1,count=1;
printf("input x\n");
scanf("%f",&x);
while(u>1e-5)
{
for(i=1;i<=(2*count-1);i++)
{t*=i;}
for(i=1;i<=(2*count-1);i++)
{p*=x;}
u=p/t;
s+=z*u;
z*=-1;
count++;
}
count--;
printf("cishu %f\n",count);
printf("jieguo %f\n",s);
}
for(i=1;i<=(2*count-1);i++)
{t*=i;} //求各项分母

for(i=1;i<=(2*count-1);i++)
{p*=x;} //求各项分子

u=p/t;
s+=z*u; //求和
z*=-1; //变号
count++; //求运转次数+1
}
展开
 我来答
GhostWzf
推荐于2017-11-25 · TA获得超过1092个赞
知道小有建树答主
回答量:313
采纳率:100%
帮助的人:508万
展开全部

初始化呀初始化。。。

 

for(i=1;i<=(2*count-1);i++)

前面分别加上t=1;和p=1;

#include "stdio.h"

void main()



 float t,i,x,p,z=1,s=0,u=1;

 int count=1; 

 printf("input x\n");  

 scanf("%f",&x);   

 while(u>1e-5)   

 {     

  t = 1; //初始化!

  for(i=1;i<=(2*count-1);i++)  

  {t*=i;}   

  p = 1; //初始化!

  for(i=1;i<=(2*count-1);i++)  

  {p*=x;} 

  u=p/t;  

  s+=z*u;   

  z*=-1;

  count++;   

 }   

 count--;

 printf("cishu  %d\n",count);   

 printf("jieguo   %f\n",s);

}
本宫欣儿
2013-06-15
知道答主
回答量:5
采纳率:0%
帮助的人:6977
展开全部
高难度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式