练习14:
如果输入的数字是相等的,这个程序会怎么办?
练习15:
编译和运行这一部分的程序,输入两个相等的值。把其输出值与你预计的值进行对比。解释两者之间的不一致。
练习16:
编写一个程序打印出用户提供的两个输入信息中较大的一个。
练习17:
编写一个程序让用户输入一系列的数字。打印出一个消息,说明这些数字中有多少个负数。
#include <iostream> int main() { int sum = 0, value; // 读取直到文件尾,计算读取的值 while (std::cin >> value) sum += value; // 等同于 sum = sum + value std::cout << "Sum is: " << sum << std::endl; return 0; } |
如果我们提供给这个程序的输入信息是:3 4 5 6
那么输入结果将会是:
像通常一样,我们先包含了必要的头文件。Main函数中的第一行定义了两个变量,分别是sum和value。我们将使用value来保存我们读取的每个数字,这是在while条件内部实现的:
| while (std::cin >> value) |
此处发生的操作就是对条件的计算,输入操作
被执行,它的效果是从标准的输入中读取下一个数字,把读取的内容保存到value中。这个输入操作符返回左边的操作数。条件测试了这个结果,也就是测试了std::cin。
当我们把istream作为条件的时候,其效果是测试流的状态。如果流是有效的--也就是说,仍然能够读取另外一个输入--那么测试是成功的。当我们输入文件结尾标识或遇到无效的输入(例如读取的值不是整数)的时候,istream就变成无效的。Istream处于无效状态将导致条件失败。
测试将一直成功并执行while主体,直到我们的确遇到文件尾标识(或其它的输入错误)。它的主体是一个语句,使用了复合赋值操作符。这个操作符把右边的操作数加到左边的操作数上。
www.xker.com(新客网) 在键盘上输入文件尾标识 不同的操作
系统使用的文件尾标识值不同。在Windows
系统上我们通过按control-z--同时按下"ctrl"和"z"来输入文件尾标识。在Unix
系统中(包括Mac OS-X计算机),通常是control-d。
一旦测试失败了,while就终止了,我们将跳出循环并执行while后面的语句。这个语句打印出sum和endl(它打印出新行并刷新与cout关联的缓冲器)。最后,我们执行了return(返回),它通常返回0表明成功了。
练习18:
编写一个程序,提示用户输入两个数字,在标准的输出中写入两个数字之间的所有数字。
练习19:
如果上面的练习中给出的数字是1000和2000会发生什么情况?修改前面的程序,使它不要在每一行输出10个以上的数字。
练习20:
编写一个程序来计算用户给定的范围之间的数字的和,略过设置上下边界的if测试。预计一下如果输入信息是7和3会发生什么情况。现在运行程序,并输入7和3,看看结果是否跟你的预计相同。如果不同,重新研究一个对for和while循环的讨论内容,直到理解发生的情况。

发表评论