一:
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 1;
do
{
sum = sum + i;
i++;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
结果(当然,和前面while语句结果一样):
二:(结果同"一"一样,下面不再赘述)
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 1;
do
{
sum = sum + i;
++i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
三:出乎我们意料的,这个程序运行的结果和前面两个程序运行结果完全不一样:
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 1;
do
{
i++;
sum = sum + i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
结果:
四:(结果同"三"一样,下面不再赘述)
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 1;
do
{
++i;
sum = sum + i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
根据结果,我们可以绘制如下表格:
sum = sum + i; i++; | sum = sum + i; ++i; | 101 5050 |
i++; sum = sum + i; | ++i; sum = sum + i; | 101 5150 |
原本的设想:
1,2,3结果一样,∑100(5050)。
4 不一样:cin i=99;sum=∑100。
所以这时,我们只要把while语句改成 while (i <= 99)即可(得到5050)。
结果实践以后事实大相径庭,不仅3结果和4一样,对3,4执行
"把while语句改成 while (i <= 99)即可(得到5050)"操作后,得到的结果反而是:
到底是怎么一回事呢?
结合我们预计的程序和结果跟我们写下的程序和结果,对照发现:
由于我们写下的程序是根据书P49 例 3-16,结果赋给i的初值一直始终为1。
而原本,我们预计的程序的结果,首先是赋初值 i = 0的程序的结果,所以在这里,我们把赋初值 i = 0的程序也写一遍:
一:
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 0;
do
{
sum = sum + i;
i++;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
结果:
二:(结果同"一"一样,下面不再赘述)
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 0;
do
{
sum = sum + i;
++i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
三:
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 0;
do
{
i++;
sum = sum + i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
四:(结果同"三"一样,下面不再赘述)
#include <iostream>
using namespace std;
void main()
{
int i, sum = 0;
i = 0;
do
{
++i;
sum = sum + i;
} while (i <= 100);
cout << i << endl
<< sum << endl;
}
根据结果,我们可以绘制如下表格:
sum = sum + i; i++; | sum = sum + i; ++i; | 101 5050 |
i++; sum = sum + i; | ++i; sum = sum + i; | 101 5151 |