#include<iostream>
int main()
{
std::cout<<"Enter two numbers:"<<std::endl;
int v1,v2;
std::cin >> v1 >> v2;
int lower,upper;
if(v1 <= v2)
{
lower = v1;
upper = v2;
}
else
{
lower = v2;
upper = v1;
}
int sum = 0;
for(int val=lower;val<=upper;++val)
{
sum += val;
}
std::cout<< "Sum of " << lower << " to " << upper<<" inclusive is " << sum <<std::endl;
return 0;
}
如果v1和v2 相等,比如都是6,则判断后lower等于upper,到了for语句时就不会执行循环体,最后sum为6;
习题1.16编写程序,输出用户输入的两个数中的较大者
答:
#include<iostream>
int main()
{
int v1,v2;
std::cin>>v1>>v2;
std::cout<<"The bigger is "<<(v1>v2?v1:v2)<<std::endl;
return 0;
}
习题1.17 编写程序,要求用户输入一组数.输出信息说明其中有多少个负数.
答:
#include<iostream>
int main()
{
int v,i=0;
while(std::cin>>v)//遇到无效输入(比如输入一个不是整数的值)或者文件结束符时条件失败(windows文件结束符为control-z)
{
if(v<0) ++i;
}
std::cout<<i<<std::endl;
return 0;
}
习题1.18编写程序,提示用户输入两个数并将这两个数范围内的每个数写到标准输出
答:
#include<iostream>
int main()
{
int v1,v2;
std::cin>>v1>>v2;
int min=v1<v2?v1:v2;
int max=v1>v2?v1:v2;
while(min<=max)
{
std::cout<<min<<" ";
++min;
}
std::cout<<std::endl;
return 0;
}
习题1.19 如果上题给定数1000和2000,程序将产生什么结果?修改程序,使每一行输出不超过10个数
答:
程序输出1000-2000的所有整数,排列不够整齐
#include<iostream>
int main()
{
int v1,v2;
std::cin>>v1>>v2;
int min=v1<v2?v1:v2;
int max=v1>v2?v1:v2;
while(min<=max)
{
std::cout<<min<<" ";
if(min%10==0) std::cout<<std::endl;
++min;
}
std::cout<<std::endl;
return 0;
}
习题1.20 编写程序,求用户指定范围内的数的和,省略设置上界和下界的if测试.假定输入数是7和3,按照这个顺序,预测程序运行结.然后按照给定的数是7 和3运行程序,看结果是否与你预测的相符.如果不相符,反复研究关于for和while循环的讨论直到弄清楚其中的原因.
答:
#include<iostream>
int main()
{
int v1,v2,sum=0;
std::cin>>v1>>v2;
while(v1<v2)
{
sum+=v1;
++v1;
}
while(v2<=v1)
{
sum+=v2;
++v2;
}
std::cout<<"The sum from v1 to v2 is "<<sum<<std::endl;
return 0;
}