这个那错了?利用级数和计算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;
} 展开
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;
} 展开
1个回答
展开全部
y=y+(-1.)*t/s; 错了,应改为:
y=y+(-1)^((i-1)/2)*t/s
你忘记了符号的变化,(-1)^(n-1)
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并不会去初始化并将输入值放入浮点数寄存器。所以一般使用时只要记住格式符必须与变量类型相对应。 如果有用请不要忘记采纳一下。:)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询