|
蓝森林 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类型 |
最近论坛里新人辈出啊 ^_^ |
| |