根据条件求和题目: 从键盘上读入任意一个0.0至5.0之间的double型变量x, 计算 x-x^2/2!+x^3/3!-……, 直到最后一项的绝对值小于 1e-5提示: (1)请复制下面语句输出最后的和值: cout << "sum=" << sum << endl;(2)此题项数不确定,与初始读入的x有关
2 回答

MMMHUHU
TA贡献1834条经验 获得超8个赞
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double x,eps=1e-5,sum=0,xtem,fac=1,xi=1,sign=1;
cout<<"please input x:\n";
cin>>x;
do{
xtem=sign*pow(x,xi)/fac;
sum+=xtem;
xi+=1.;
fac*=xi;//阶乘
sign*=-1.;//符号
}while(fabs(xtem)>eps);
cout<<"sum="<<sum<<endl;
}
c++中没有表示次方的运算符,求X的Y次方,一般调用数学函数库中的pow函数,pow(X,Y),求绝对值是fabs函数

跃然一笑
TA贡献1826条经验 获得超6个赞
前面的输入我就不写了,主要就是循环
int i = 1;
while(true)//写一个死循环,在循环内按他的要求退出
{
int nCur = x^i/i;
if(i % 2 == 0)
{
sum -= nCur;
}
else
{
sum += nCur;
}
if(nCur < 0)
{
nCur = 0 - nCur;
}
if(nCur < 1e -5)
{
break;
}
i++;
}
- 2 回答
- 0 关注
- 212 浏览
添加回答
举报
0/150
提交
取消