5
while (std::cin >> value)
if (value <= 0)
++amount;
std::cout << "Amount of all negative values read is"
<< amount << std::endl;
return 0;
}
习题 1.18
编写程序,提示用户输入两个数并将这两个数范围内的每个
数写到标准输出。
【解答】
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1, v2;
std::cin >> v1 >> v2; // 读入两个数
// 用较小的数作为下界 lower 、较大的数作为上界 upper
int lower, upper;
if (v1 <= v2) {
lower = v1;
upper = v2;
} else {
lower = v2;
upper = v1;
}
// 输出从 lower 到 upper 之间的值
std::cout << "Values of " << lower << "to "
<< upper << "inclusive are: " << std::endl;
for (int val = lower; val <= upper; ++val)
std::cout << val << " ";
return 0;
}
习题 1.19
如果上题给定数 1000 和 2000 ,程序将产生什么结果?修
改程序,使每一行输出不超过 10 个数。
【解答】
所有数的输出连在一起,不便于阅读。
程序修改如下:
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1, v2;
std::cin >> v1 >> v2; // 读入两个数
// 用较小的数作为下界 lower 、较大的数作为上界 upper
int lower, upper;
if (v1 <= v2) {
lower = v1;
upper = v2;
} else {
lower = v2;
upper = v1;
}
// 输出从 lower 到 upper 之间的值
std::cout << "Values of " << lower << "to "
<< upper << "inclusive are: " << std::endl;
for (int val = lower, count=1; val <= upper; ++val,
++count) {
std::cout << val << " ";
if (count % 10 == 0) // 每行输出 10 个值
std::cout << std::endl;
}
return 0;
}
粗黑体部分为主要的修改:用变量 count 记录已输出的数
的个数;若 count 的值为 10 的整数倍,则输出一个换行符。
习题 1.20
编写程序,求用户指定范围内的数的和,省略设置上界和下
界的 if 测试。 假定输入数是 7 和 3,按照这个顺序, 预测程
序运行结果。 然后按照给定的数是 7 和 3 运行程序, 看结果
是否与你预测的相符。如果不相符,反复研究关于 for 和
while 循环的讨论直到弄清楚其中的原因。
【解答】
可编写程序如下:
// 1-20.cpp
// 省略设置上界和下界的 if 测试,求用户指定范围内的数
的和
#include <iostream :www.bboby.com >
int main()
{
std::cout << "Enter two numbers:" << std::endl;
int v1, v2;
std::cin >> v1 >> v2; // 读入数据
int sum = 0;
评论0
最新资源