使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序的执行结果为: 1 2 3 4 5 4 3 2 1 1 2 3 4 3 2 1

admin2015-05-30  22

问题 使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序的执行结果为:
    1  2  3  4  5  4  3  2  1
       1  2  3  4  3  2  1
          1  2  3  2  1
             1  2  1
                1
    注意:错误的语句在//********error********的下面,修改该语句即可。
    1    #include
    2    #include
    3    void mein()
    4    {
    5    int i,j,k ;
    6    for(i=5 ; i>=1;i--)
    7    {
    8    //********error********
    9    for(J=1;j<=i ; j++)
    10    cout<<"   ";
    11    //********error********
    12    for(k=1;k>=i ; k++)
    13    cout<    14    //********error********
    15    for(k=i-1 ;k>0 ;k++)
    16    cout<    17    cout<    18    }
    19  }

选项

答案(1)for(j=1;j<=5一i;j++) (2)for(k=1 ; k<=i ; k++) (3)for(k=i-1;k>0 ; k--)

解析 本题属于绘制图形题,观察可知输出图形左右对称,从上至下有规律变化,因此可采用循环输出的方式得到该图形。输出图形呈倒金字塔型,即开始输出的空格逐步增多;由于图形左右对称,从左边到中间数值逐渐增大,到最大值后逐渐减小,因此可以分两次输出数值,一个循环负责输出左半部分,另一个输出右半部分数值。
    [解题思路]
    (1)分析可知,两个循环负责输出两半数值,刚开始还有空格,而且空格书逐行增加,因此也必须用循环来实现输出空格,即内层第一个小循环负责输出空格,因此for(j=1 ;j<=i.j++)应改为for((j=1.j<=5-ij++)。
    (2)第二个小循环负责输出左半部分数值,外层大循环i从5变到1,而每行前半部分数值的最大值在减小,因此第二个循环的循环变量j与i之和满足一定关系,即j<=i,第2个标识处for(k=1;k>=i;k++)应改为for(k=1;k<=i;k++)。
    (3)第三个小循环负责输出右半部分数值,数值从大变到小,因此循环变量k的初值为i-1,k逐次变小,即第3标识处for(k=i.1;k>0;k++)应改为for(k=i-1;k>0;k--)。
转载请注明原文地址:https://kaotiyun.com/show/9JNp777K
0

最新回复(0)