这个那错了?利用级数和计算Y=x/1-x^3/3!+x^5/5!-x^7/7!+x^9/9!+..........+(-1)^(n-1)*x^(2n-1)/(2n-1)!

#include<stdio.h>intmain(intargc,char*argv[]){intn,i;floatx,y,t=1.,s=1.;scanf("%d%f",... #include <stdio.h>
int main(int argc, char *argv[])
{
int n,i;
float x,y,t=1.,s=1.;
scanf("%d%f",&n,&x);
y=x/1;
t=t*x;
for(i=3;i<=2*n-1;i=i+2)
{ t=t*x*x;
s=i*(i-1)*s;
y=y+(-1.)*t/s;
}
printf("%.3f",y);
return 0;
}
展开
 我来答
lougx
2012-11-23 · TA获得超过149个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:154万
展开全部
y=y+(-1.)*t/s; 错了,应改为:

y=y+(-1)^((i-1)/2)*t/s

你忘记了符号的变化,(-1)^(n-1)
更多追问追答
追问
哥哥,为什么我用while(scanf("%d%d",&n,&x)==1)是错的,
用scanf("%d%f",&n,&x);是对的啊
追答
这涉及到浮点数运算,它需要用浮点数寄存器的,x是float,它是浮点数,所以必须用%f, 而%d并不会去初始化并将输入值放入浮点数寄存器。所以一般使用时只要记住格式符必须与变量类型相对应。 如果有用请不要忘记采纳一下。:)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式