蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年6月6日 10:18


求高手指点 本人新人遇到点问题

求1-1/2+1/3-1/4+。。。。。。。+1/99-1/100
我的代码如下 老是出错请问什么原因呢?
#include <iostream.h>
int main()
{
int sign=1;
int sum=0;
int a=1;
int i=0;
int b=0;
while(i<100)
{ sign=-1*sign;
  b=(1/a)*sign;
  sum+=b;
  a++;

}return 0;
  cout<<sum<<endl;
}

难道没有大虾吗?

没有仔细看你的算法,至少下面几个地方错了:
#include <iostream>
using namespace std;
return 0放到最后一句

#include <iostream>
int main()
{
using namespace std;
int sign=1;
float sum=0;
int a=1;
int i=0;
float b=0;
while(i<100)
{
  b=(1/(float)a)*sign;
  sum+=b;
  sign*=-1;
  i++;
  a++;
}
  cout<<sum<<endl;
  return 0;
}


using namespace std
这句是什么意思呢 指点下谢谢 没见过

看一下书里面的关于表达式如何计算的部分,只要a是个整数,1 / a的结果始终是0,所以不管你运算了多少次,最后的sum都是0。

谢谢6楼 我改了几个变量的类型就是没注意到a的类型

a是整型,在计算前必须强制转化成float类型

最近论坛里新人辈出啊 ^_^



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com