练习5.7

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 ";

  (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 ";

    d)修改之后:

     if ( ival = = 0)

        ival = get_value();

5.8:什么是“悬垂else”?C++语言是如何处理else子句的?

Ans:当程序中的if分支数量大于else分支的数量,如何为else寻找匹配的if的问题,就是悬垂else。C++的处理方式是 else子句总是与最近的if进行匹配。

原文地址:https://www.cnblogs.com/Dark-King/p/9455413.html