5.3二雅教组的定义和引用 一、定义二维数组 一般形式: 类型标识符数组名[常量表达式][常量表达式] 例如:float a[3][4]b[5][10] 说明:①可以把二维数组看作是一种特殊的一维 数组:它的元素又是一个一维数组。 a0].a0]0]a0l[1a0ll2]a0]3] a[1 a10a1][1]a1[2]a13] a2] a2[0]a2[1]a2l[2]a2][3]
5.3 二维数组的定义和引用 一、定义二维数组 一般形式: 类型标识符 数组名[常量表达式][常量表达式] 例如: float a[3][4],b[5][10]; 说明:①可以把二维数组看作是一种特殊的一维 数组:它的元素又是一个一维数组。 a a[0] a[0][0] a[0][1] a[0][2] a[0][3] a[1] a[1][0] a[1][1] a[1][2] a[1][3] a[2] a[2][0] a[2][1] a[2][2] a[2][3]
5.3二雅数组的定义和引用 ②二维数组中元素排列的顺序是:按行存放。 00 aol a02 a03 a10 a11 a12 013 d20 a21 a22 23 ③多维数组的存放顺序和二维数组一样。 定义三维数组的方法是:f1oata[2][3][4]
5.3 二维数组的定义和引用 ②二维数组中元素排列的顺序是:按行存放。 ③多维数组的存放顺序和二维数组一样。 定义三维数组的方法是:float a[2][3][4];
5,3二撞教组的定义和引用 二、二维数组的引用 二维数组元素的表示形式: 数组名[下标][下标] 说明: ①数组元素是左值,可以出现在表达式中, 也可以被赋值,例如:b[1[2]=a[2][3]/2; ②在使用数组元素时,应该注意下标值应 在已定义的数组大小的范围内。 ③严格区分在定义数组时用的a3][4和引用 元素时用的a3[4的区别
5.3 二维数组的定义和引用 二、二维数组的引用 二维数组元素的表示形式: 数组名 [下标][下标] 说明: ①数组元素是左值,可以出现在表达式中, 也可以被赋值,例如:b[1][2]=a[2] [3]/2; ②在使用数组元素时,应该注意下标值应 在已定义的数组大小的范围内。 ③严格区分在定义数组时用的a[3][4]和引用 元素时用的a[3][4]的区别
5,3二推数组的交义和引用 三、二维数组的初始化 ①分行给二维数组赋初值。 inta3]4={1,2,3,4},{5,6,7,8,{9,10,11,12}; ②可以将所有数据写在一个花括号内, 按数 组排列的顺序对各元素赋初值。 inta3]l4={1,2,3,4,5,6,7,8,9,10,11,12; ③可以对部分元素赋初值。 inta3I[4={1},{5},9 inta[31[4]={1},{0,6},{0,0,11}; inta3[4]={1},{5,6} ④定义数组时对第一维的长度可以不指定, 但第二维的长度不能省。 inta14={0,0,3},{},{0,10};
5.3 二维数组的定义和引用 三、二维数组的初始化 ①分行给二维数组赋初值。 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; ②可以将所有数据写在一个花括号内,按数 组排列的顺序对各元素赋初值。 int a[3][4]={1,2,3,4,5,6,7,8 ,9,10,11,12}; ③可以对部分元素赋初值。 int a[3][4]={{1},{5},{9}}; int a[3][4]={{1},{0,6},{0,0,11}}; int a[3][4]={{1},{5,6}}; 定义数组时对第一维的长度可以不指定, 但第二维的长度不能省。 int a[ ] [4]={{0,0,3},{ },{0,10}};
5,3二雅款组的定义和引用 四、二维数组程序举例 例:将一个二维数组行和列元素互换,存到另 一个二维数组中。例如 4& b= b[j][i]=a[i][j]
5.3 二维数组的定义和引用 四、二维数组程序举例 例:将一个二维数组行和列元素互换,存到另 一个二维数组中。例如 1 2 3 1 4 4 5 6 2 5 3 6 b= a= b[j][i]=a[i][j]
#include using namespace std; int main() {inta[2][3]={{1,2,3},人4,5,6}: int b[3][2],ij; cout<<"array a:"<<endl; for(i=0i<=1i++) {forj=0j<=2j++) cout<<a[i][j]<<"" b[j][i]=a[i][]} cout<<endl; cout<<"array b:"<<endl; for(i=0;i<=2i++) {for(j=0j<=1j++) cout<<b[i][j]<<""; cout<<endl; return 0;}
#include using namespace std; int main( ) {int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; cout<<″array a:″<<endl; for (i=0;i<=1;i++) { for (j=0;j<=2;j++) { cout<<a[i][j]<<″ ″; b[j][i]=a[i][j];} cout<<endl; } cout<<″array b:″<<endl; for (i=0;i<=2;i++) {for(j=0;j<=1;j++) cout<<b[i][j]<<″ ″; cout<<endl; } return 0;}
例:有一个3×4的矩阵,要求编程序求出其中值最大的 那个元素的值,以及其所在的行号和列号。 #include using namespace std; int main() int i,j,row=0,colum=0,max; inta[3][4]={{5,12,23,56,X19,28,37,46 {-12,-34,6,8}; max=a[O][O]; for(i=0imax) {max=a[i][j]; row=i; colum=j; cout<<"max="<<max<<"row="<<row <<"colum="<<colum <<endl; return O; }
例:有一个3×4的矩阵,要求编程序求出其中值最大的 那个元素的值,以及其所在的行号和列号。 #include using namespace std; int main( ) { int i,j,row=0,colum=0,max; int a[3][4]={{5,12,23,56},{19,28,37,46}, {-12,-34,6,8}}; max=a[0][0]; for (i=0;imax) {max=a[i][j]; row=i; colum=j; } cout<<″max=″<<max<<″,row=″<<row <<″,colum=″<<colum <<endl; return 0; }
求一个3*3矩阵对角线之和 】 #include using namespace std; int main() {inta[3][3]={{1,2,3}{4,5,6X7,8,9}: int i,s; for(i=0;i<3;i++) s=s+a[i][i]; cout<<"s="<<s<<endl return 0;
求一个3*3矩阵对角线之和 1 2 3 a= 4 5 6 7 8 9 #include using namespace std; int main( ) {int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int i, s; for(i=0;i<3;i++) s=s+a[i][i]; cout<<”s=”<<s<<endl; return 0; }
5.4用数组名作晶数参数 1.用数组元素作函数实参 数组元素也可以作为函数的实参,与用变 量作实参一样,将数组元素的值传送给形参变 量。 例:用函数处理上例。 #include using namespace std; int main() int max_value(int x,int max); int i j,row=0,colum=0,max; inta[3][4]={{5,12,23,56}K19,28,3746, {-12,-34,6,8}i
5.4 用数组名作函数参数 1. 用数组元素作函数实参 数组元素也可以作为函数的实参,与用变 量作实参一样,将数组元素的值传送给形参变 量。 例:用函数处理上例。 #include using namespace std; int main( ) { int max_value(int x,int max); int i,j,row=0,colum=0,max; int a[3][4]={{5,12,23,56},{19,28,37,46}, {-12,-34,6,8}};
max=a[O][O]; for(i=0imax)return x; else return max;
max=a[0][0]; for (i=0;imax) return x; else return max; }