5.7:改正下列代码段中的错误。
(a) if (ival1 != ival2)
ival1=ival2
else ival1=ival2=0;
(b) if (ival <minval)
minval=ival;
occurs=1;
(c) if(int ival =get_value())
cout<<"ival = "<<ival<<endl;
if(! ival)
cout<<"ival = 0\n";
(d)if ( ival = 0)
ival = get_value();
Ans:a) 修改之后:
if (ival1 != ival2)
ival1=ival2;
else ival1=ival2=0;
b)修改之后:
if (ival <minval)
{
minval=ival;
occurs=1;
}
c)修改之后:
int ival;
if(ival =get_value())
cout<<"ival = "<<ival<<endl;
if(! ival)
cout<<"ival = 0\n";
d)修改之后:
if ( ival = = 0)
ival = get_value();
5.8:什么是“悬垂else”?C++语言是如何处理else子句的?
Ans:当程序中的if分支数量大于else分支的数量,如何为else寻找匹配的if的问题,就是悬垂else。C++的处理方式是 else子句总是与最近的if进行匹配。