1. 二维数组就是一块连续的存储空间,只是采取下标寻址时才会当成表格。
例如:
#define V_NUM 10
#define H_NUM 20
char table[V_NUM][H_NUM];
定义一个这样的二维数组,对于下面这种循环打印才把它看作是一个长度为H_NUM,高度为V_NUM的表格(如*图)。
for(i=0; i{
for(j=0; j {
if(table[i][j] == 0)
printf("*");
else if(table[i][j] == 1)
printf("o");
}
printf("/n");
}
********************
********************
********************
********************
********************
********************
********************
********************
********************
********************
2. 修改数组中元素
i. 在用户角度使用二维数组
例如:想画一个如下图的飞机,其中只给出机头位置(x, y),在表格中其实是table[y][x];跟定义和打印方法都有关系。
********************
********************
********************
*****o**************
*****o**o***********
****ooooo***********
*****o**o***********
*****o**************
********************
********************
ii. 二维数组寻址问题
例如:用户输入(x, y)来设定机头,下标移动要分析清楚。画出机身,机头(x, y),那个由上一个小问题可知是table[y][x]为起点,其中[x]向右移动5格画出飞机。
总结今天使用二维数组的问题,终究归于对其不熟悉,尤其是下标表示法。