练习5.18:说明下列循环的含义并改正其中的错误。
(a)
do //{ /*缺少括号*/
int v1, v2;
cout << “please enter two numbers to sum:”;
if (cin >> v1 >> v2)
cout << “sum is: ” << v1 + v2 << endl;
while (cin);
(b)
do {
//...
}while (int ival = get_response());//错误,不允许在条件部分定义变量
(c)
do {
int ival = get_response();
} while (ival); //因为ival是局部变量,出了括号,while不认识了,网上参考的答案不能全信,//误人子弟
练习5.19:编写一段程序,使用do while循环重复地执行下述任务:首先提示用户输入两个sting对象,然后挑出较短的那个并输出它。
答:程序见云盘程序练习5.19
练习5.19
#include <iostream>
#include <string>
using namespace std;
int main()
{
string rsp;//作为循环的条件,不能定义在do的内部
do {
cout << "please input two strings ." << endl;
string s1, s2;
cin >> s1 >> s2;
if (s1.length() <= s2.length())
cout << "The short one is : " << s1 << endl;
else cout << "The shot one is : " << s2 << endl;
cout << "More? Enter y or n:";
cin >> rsp;
} while (!rsp.empty() && rsp[0] !='n');
return 0;
}