这个程序哪错了?

miracleliu 2007-02-13 03:17:05
这是一个求阶数的程序。为什么每次的结果都是1?
请高手指教

#include<iostream.h>
#include<math.h>
int jc(int i)
{
if(i==1)
return 1;
return jc(i-1)*i;
}

void main()
{
double s=1;
double m=0;
double x,
int sign=1;
cout<<"input a num:"<<endl;
cin>>x;
for(int j=1;;j++)
{

m=sign*(pow(x,j)/jc(j));

sign*=-1;
if(fabs(m)》1e-8)break;
s+=m;

}
cout<<"js is :"<<s<<endl;
}
...全文
286 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
miracleliu 2007-02-13
  • 打赏
  • 举报
回复
不好意思,刚刚重新打开编译一次,就能连接了。

怎么刚才不能连接,现在又能了。郁闷!
miracleliu 2007-02-13
  • 打赏
  • 举报
回复
我换了一种思路又做了一遍,结果有出了个毛病。
编译通过,但是连接有一个致命错误,哪里的毛病?
请指教

#include<iostream.h>
#include<math.h>
void main()
{
double s=1,t=-1,x;

cout<<"input a num:"<<endl;
cin>>x;
for(int i=1;;i++)
{
t*=-1*(x/i);

if(fabs(t)<1e-8)break;
s+=t;
}
cout<<s<<endl;
}

miracleliu 2007-02-13
  • 打赏
  • 举报
回复
我是个菜鸟,你们都是高手,回答太简单了,俺看不懂,请详解,谢谢
htqx 2007-02-13
  • 打赏
  • 举报
回复
设置断点,然后运行.
miracleliu 2007-02-13
  • 打赏
  • 举报
回复
if(fabs(m)>1e-8)break;
复制过路就变成书名号了。
这句是限制精度的。好象就是这句有问题。

如果是让精度为1e-8怎么做啊?

另外谢谢楼上教我单步跟踪。
willsmith 2007-02-13
  • 打赏
  • 举报
回复
调试!
Allen_zhang 2007-02-13
  • 打赏
  • 举报
回复
if(fabs(m)》1e-8)break;
这一句什么意思?看不懂

你把光标放在这句上面,按F9,就会出现一个断点标记
然后按F5,之后按F10,你就可以看到各个变量的值了
miracleliu 2007-02-13
  • 打赏
  • 举报
回复
不会用啊/怎么跟踪?
请指教。。
taodm 2007-02-13
  • 打赏
  • 举报
回复
单步跟踪一下就知道了

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧