练习5.5
int main() {
const vector<string> scores = { "F","D","C","B","A","A++" };
string lettergrade;
int grade = 0;
while (cin >> grade)
{
if (grade < 60)
lettergrade = scores[0];
else {
lettergrade = scores[(grade - 50) / 10];
}
cout << lettergrade << endl;
}
}
练习5.6
int main() {
const vector<string> scores = { "F","D","C","B","A","A++" };
string lettergrade;
int grade = 0;
while (cin >> grade)
{
lettergrade = grade < 60 ? lettergrade =scores[0] : lettergrade = scores[(grade - 50) / 10];
cout << lettergrade << endl;
}
}
练习5.7
以下为修改错误后的代码:
int main() {
int ival1 = 1;
int ival2 = 2;
if (ival1 != ival2)
ival1 = ival2;
else
ival1 = ival2 = 0;
}
int main() {
int ival = 1;
int minval = 0;
int occurs = 0;
if (ival < minval) {
minval = ival;
occurs = 1;
}
}
int main() {
if (int ival = get_value()) { //get_value函数尚不熟悉
cout << "ival = " << ival << endl;
if (!ival)
cout << "ival = 0\n";
}
}
int main() {
int ival = 1;
if (ival == 0)
ival = get_value();
}
练习5.8
如何确定某个给定的else是和哪个if匹配?这个问题称作垂悬else。就C++而言,它规定 else 与离他最近的尚未匹配的if匹配,从而消除了程序的二义性。