写一个C程序计算sinx≈x/1-x3/3!+x5/5!-x7/7!+…+(-1)n-1 大神看下我的程序哪里错了

{doublex;inti;intj;intn;intt=1;doublesinx=0;printf("Pleaseinputx:");scanf("%lf",&x);p... {
double x;
int i;
int j;
int n;
int t=1;
double sinx=0;
printf("Please input x:");
scanf("%lf",&x);
printf("Please input n:");
scanf("%d",&n);
for(j=1;j<=2*n-1;j=j+2)
{for(i=1;i<=j;i++)
t=t*i;
sinx=pow(x,j)/t;
sinx=sinx+0;}
printf("sinx=%f",sinx);
return 0;

}
开始题目看错了突然发现还有减号,你们就把我的程序当成X=x/1+x3/3!+x5/5!+x7/7!+…+Xn/n!算吧
展开
 我来答
夜礼服假面MP
推荐于2016-12-01 · TA获得超过3437个赞
知道大有可为答主
回答量:1034
采纳率:77%
帮助的人:362万
展开全部
for(j=1;j<=2*n-1;j=j+2)
{for(i=1;i<=j;i++)
t=t*i;
sinx=pow(x,j)/t;
sinx=sinx+0;}
printf("sinx=%f",sinx);
修改为
for(j=1;j<=2*n-1;j=j+2)
{
t=1;//t需要赋值为1,否则每次都是上个循环的值

for(i=1;i<=j;i++)
t=t*i;
sinx + =pow(x,j)/t; //这个才是累加

}
更多追问追答
追问
t里面存的是n的阶乘阿,就是要循环上个循环的值吧,我要计算的是X=x/1+x3/3!+x5/5!+x7/7!+…+xn/n!,能不能再给小弟将下
追答
第一次循环,1! = 1   ,这个时候t =1;

第二此循环,3! = 3* 2 *1,这个时候t =6;
第三次循环,5! = 5*4*3*2*1,这个时候算的话,t还是为6呀,按照你的逻辑的话, 5! = 5*4*3*2*6;
匿名用户
2014-10-15
展开全部
首先没有lf。scanf("%lf",&x);
借鉴一下下面程序吧。精度可以自己控制。

要求精度为10^-6
#include<stdio.h>
#include<math.h>
int main()
{
int x,n,y,i,s,j;
float sum,sinx,temp;
scanf("%d",&x);
j=-1;
s=1;
sum=x;
for (n=1;fabs(sum-sin(x))>10e-6;n++)
{
y=2*n+1;
for (i=1;i<=y;i++)
{
s*=i;
}
temp=j*pow(x,y)/s;
sum+=temp;
j=-j;
}
printf("%f",sum);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式