资源描述:
《c语言基础第7章多维数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、7.2二维数组及多维数组二维数组的定义定义方式:数据类型 数组名[常量表达式][常量表达式];数组元素的存放顺序原因:内存是一维的二维数组:按行序优先多维数组:最右下标变化最快例inta[3][4];floatb[2][5];intc[2][3][4];inta[3,4];()行数列数元素个数=行数*列数inta[3][2]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]014523a[0][0]a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]
2、intc[2][3][4]01234567………...20212223c[0][0][0]c[0][0][1]c[0][0][2]c[0][0][3]c[0][1][0]c[0][1][1]c[0][1][2]c[0][1][3]c[0][2][0]c[0][2][1]c[0][2][2]c[0][2][3]c[1][0][0]c[1][0][1]c[1][0][2]c[1][0][3]c[1][1][0]c[1][1][1]c[1][1][2]c[1][1][3]c[1][2][0]c[1][2][1
3、]c[1][2][2]c[1][2][3]二维数组理解例inta[3][4];20161720181920202120222320089201011201213201415200012002320045200067a[0][0]a[0][1]a[0][2]a[0][3]a[1][0]a[1][1]a[1][2]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]每个元素a[i]由包含4个元素的一维数组组成二维数组a是由3个元素组成a[0]a[1]a[2]行名014523a[0][1]a
4、[0][2]a[0][3]a[1][0]a[1][1]a[0][0]a[1][3]a[2][0]a[2][1]a[2][2]a[2][3]a[1][2]67101189a[0]a[1]a[2]二维数组元素的引用形式:数组名[下标][下标]二维数组元素的初始化分行初始化:例inta[2][3]={{1,2,3},{4,5,6}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123456全部初始化按元素排列顺序初始化例inta[2][3]={{1,2},{4}};a[
5、0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]120400部分初始化例inta[][3]={{1},{4,5}};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]100450第一维长度省略初始化例inta[2][3]={1,2,3,4,5,6};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123456全部初始化例inta[2][3]={1,2,4};a[0][0]a[0][1]a[0][2]a[
6、1][0]a[1][1]a[1][2]124000部分初始化例inta[][3]={1,2,3,4,5};a[0][0]a[0][1]a[0][2]a[1][0]a[1][1]a[1][2]123450第一维长度省略初始化程序举例例将二维数组行列元素互换,存到另一个数组中a=123456b=142536#includemain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:");for(i=0;i<=1;i
7、++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("");}printf("arrayb:");for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("");}}例求二维数组中最大元素值及其行列号max=a[0][0]fori=0to2forj=0to3a[i][j]>max真假max=a[i][j]row=icolum=j输出:ma
8、x和row,colum#includemain(){inta[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};inti,j,row=0,colum=0,max;max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,col