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