计算级数的程序,题目是1+x-x^2⼀2!+x^3⼀3!-……+(-1)^(n+1)*x^n⼀n!,我写的程序如下,运行后没结果

2025-03-13 23:28:32
推荐回答(2个)
回答1:

首先你的变量定义不规范,其实不需要这么多,再次你的算法思路很不清晰。
你的代码主要错在此句 for(i=1;fabs(t)>1e-8;i++,n++) 中fabs(t)中的t是变量且没有赋值,不可能传递到你写的fabs函数之中,所以当然你的for语句是执行不了的;
其次提一下你的1e-8,作为比较合理的思路,这道题其实就两个主要变量x和n,还有一个数组(循环要求用的暂且忽略)。你自己外部输入这两个值后,循环就以n作为一个限定。

回答2:

# include
# include
long fact(int n)
{
long s,i;
s=1;
for(i=n;i>1;i--)
{
s=s*i;
}
return s;
}
void main()
{
double sign,x,s,t;
long n;
cout<<"请输入一个X值"< cin>>x;
sign=-1,s=1.0,n=1;
for(n=1;fabs(t)>1e-8;n++)
{
sign=-sign;
t=pow(x,n)/fact(n)*sign;
cout< s=s+t;
}
cout<<"所求的级数为"<}

问题就是x太大了!!!输入小点就没问题了,估计题目要求应该是abs(x)<1