注册 登录
编程论坛 C++教室

[求助]师兄门,还是稍微指教下

孤魂居士 发布于 2007-06-09 20:53, 511 次点击

师兄们 这是简单的程序 就是有点糊涂了 要师兄门解释下
题目:
1-1/2+1/3-1/4+......1/99-1/100的值

下面有两种代码  师兄们  指点下 这两种代码哪中是对的 为什么是对的?或者说为什么错了?错在哪里?
第1种:
#include<iostream.h>
void main()
{
float sum=0,t,s=1;
for(float i=1;i<=4;i++)
{
t=s/i;
s=-s;
sum=sum+t;

}
cout<<"sum="<<sum<<endl;
}

第2种:
#include<iostream.h>
void main()
{
float sum=0,t,s=1;
for(int i=1;i<=100;i++)
{
if(i%2==0)
s=-s;
else s=s;
t=s/i;
sum=sum+t;

}
cout<<"sum="<<sum<<endl;
}


师兄门指点下
为什么第一个程序中的赋值语句:s=-s;为什么要在t=s/i;的后面??那不是全部算的是负值吗?没有正的了吗?
哥哥门小弟糊涂了指点下````

6 回复
#2
孤魂居士2007-06-09 20:54

师兄们
你们人跑哪去了``
#3
aipb20072007-06-09 21:59
s = -s是间隔一次取正负啊!可以的。
#4
孤魂居士2007-06-09 22:19


我知道了
哎``伤心
以前老师讲的时候没有注意听
就是开始是正的 第2次变成负的了
负加负又是正的了 .......然后又加负就是负的了 然后负加负又是正的了.............
无言了这点逻辑都没有了```伤心啊```要哭了``
#5
孤魂居士2007-06-09 22:20
谢谢
无限哥哥的提示``
#6
aipb20072007-06-09 22:32
你可以试者用更多的方法写这个题目的。你上面的代码都是一个思路。
呵呵!
#7
孤魂居士2007-06-10 20:00

好 ````

谢谢循环哥哥指点```
1