二维数组简单讲解.ppt
文本预览下载声明
二维数组的初始化 1、分行赋初值 int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; static int b[4][3] = {{1,2,3},{ },{4,5}}; 数组a 1 2 3 4 5 6 7 8 9 数组b 1 2 3 0 0 0 4 5 0 0 0 0 2、顺序赋初值 int a[3][3] = {1,2,3,4,5,6,7,8,9}; static int b[4][3] = {1,2,3,0,0,0,4,5}; 省略行长度 对全部元素都赋初值 int a[ ][3]={1,2,3,4,5,6,7,8,9}; 或分行赋初值时,在初值表中列出全部行 static int b[ ][3]={{1,2,3},{},{4,5},{}} 建议不要省略! 数组a 1 2 3 4 5 6 7 8 9 数组b 1 2 3 0 0 0 4 5 0 0 0 0 使用二维数组编程 行下标和列下标分别作循环变量, 通过二重循环,遍历二维数组 通常将行下标作为外循环的循环变量 列下标 内循环 【例7-5】 定义1个 3*2 的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a数组。 a[i][j] = i + j(0≤i≤2,0≤j≤1) 生成一个矩阵并输出 int a[3][2]; a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 计算各数组元素的值 0 1 1 2 2 3 写出源程序! #include stdio.h int main(void) { int i, j; int a[3][2]; for(i = 0; i 3; i++) for(j = 0; j 2; j++) a[i][j] = i + j; for(i = 0; i 3; i++){ for(j = 0; j 2; j++) printf(%4d, a[i][j]); printf(\n); } return 0; } i = 0 j = 0 a[0][0]=0 i = 0 j = 1 a[0][1]=1 i = 1 j = 0 a[1][0]=1 i = 1 j = 1 a[1][1]=2 i = 2 j = 0 a[2][0]=2 i = 2 j = 1 a[2][1]=3 源程序 0 1 1 2 2 3 //二维数组的输入 //二维数组的输出 自定义函数day_of_year(year, month, day),计算并返回年year、月month和日day所对应的是该年第几天。 day_of_year(2000, 3, 1) 返回61 day_of_year(1981, 3, 1) 返回60 分析: 月 0 1 2 3 ……11 12 非闰年 0 31 28 31 30 31 闰年 0 31 29 31 30 31 日期计算——二维数组方式 int tab[2][13]={ {0,31, 28, 31, 30,31,30,31,31,30,31, 30,31}, {0,31, 29, 31, 30,31,30,31,31,30,31, 30,31} } 利用二维数组分别表示非闰年和闰年 源程序 int day_of_year(int year, int month, int day) { int k, leap; int tab[2][13]={ {0,31, 28, 31, 30,31,30,31,31,30,31, 30,31}, {0,31, 29, 31, 30,31,30,31,31,30,31, 30,31} }; leap = (year%4==0year%100!=0) || year %400==0;//行号 for
显示全部