全部问题 > 当前问题

完全看不懂,题目意思都不懂怎么办?

刘杨敏 2017-2-11 17:49:44

共 1 个回答

king 2017-2-12 01:58:09

   题目意思是 第一行给第一个数赋值 第二行给前两个数赋值 第三行给前三个数赋值.....   j 控制列数 i  控制行数

根据所给的第二个for循环可知是从下往上赋值  所以表达式三是 i-- ,进入第二个for()循环体中 n先自增,根据所给例子可知n依次自增并进行赋值 我感觉函数体部分代入计算一下就理清思路了

问题来自: 二维数组
以下程序按下面指定的数据给x 数组的下三角置数,并按如下形式输出,请填空。
4
3  7
2  6  9
1  5  8 10
#include <stdio.h>
main()
{ int x[4][4],n=0,i,j;
  for(j=0;j<4;j++)
  for(i=3;i>=j; __【12】__ ) {n++;x[i][j]= __【13】__ ;}
  for(i=0;i<4;i++)
  { for(j=0;j<=i;j++) printf("%3d",x[i][j]);
    printf("\n");
  }
}
A. 【12】i++【13】n
B. 【12】i++【13】n-1
C. 【12】i--【13】n
D. 【12】i--【13】n-1
答案:C
解析:观察题中的三角形,可以分析出,三角形的赋值规则是从左边开始,将每一列从下到上自增赋值。然后往右一列,再继续从下往上自增赋值。每往右一列,上面的行数就少1。根据这个特点,我们来阅读程序。不难看出,j循环从0到3,便是从左到右,表示列数。i循环从3到j,是从下到上,表示行数。由于是i是从大到小进行循环,所以自增表达式【12】应为i--。在循环体中,我们看到每次循环都会执行n++,所以x[i][j]中存储的就应该是n的值,因此【13】应为n。