《C語言課件二維數(shù)組【教學(xué)類別】》由會員分享,可在線閱讀,更多相關(guān)《C語言課件二維數(shù)組【教學(xué)類別】(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 11.1 11.1二維數(shù)組的定義二維數(shù)組的定義類型說明符類型說明符 數(shù)組名常量表達(dá)式常量表達(dá)式;數(shù)組名常量表達(dá)式常量表達(dá)式;例如:定義例如:定義a a為為3 34(34(3行行4 4列列)的數(shù)組,的數(shù)組,b b為為5 510(510(5行行1010列列)的數(shù)組。如下:的數(shù)組。如下:float afloat a3 34 4,b b5 51010;不能寫成不能寫成 float afloat a3 3,4 4,b b5 5,1010;1應(yīng)用2注意注意我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個一維數(shù)組。它的元素又是一個一維數(shù)組。例如,可以
2、把例如,可以把a(bǔ) a看作是一個一維數(shù)組,它有看作是一個一維數(shù)組,它有3 3個元素:個元素:a a0 0、a a1 1、a a2 2,每個元素又是一個包含,每個元素又是一個包含4 4個元素的一維數(shù)組。個元素的一維數(shù)組。2應(yīng)用2 二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素 3應(yīng)用2b00b00b01b01b02b02b10b10b11b11b12b12b20b20b21b21b22b223000H3000H3002H3002H3004H3004H3003006 6H H3008H3008H300AH300AH300CH300CH300EH300EH
3、3010H3010H例如:整型數(shù)組例如:整型數(shù)組 b33=1,2,3,4,5,6,7,8,9;b33=1,2,3,4,5,6,7,8,9;1 12 23 34 45 56 67 78 89 94應(yīng)用2多維多維數(shù)組如何定義呢?數(shù)組如何定義呢?定義三維數(shù)組:定義三維數(shù)組:float afloat a2 23 34 4;多維數(shù)組元素在內(nèi)存中的排列順序:第一維的下標(biāo)變化最慢,最多維數(shù)組元素在內(nèi)存中的排列順序:第一維的下標(biāo)變化最慢,最右邊的下標(biāo)變化最快右邊的下標(biāo)變化最快。a000a001a002a003a000a001a002a003 a010a011a012a013 a010a011a012a013
4、a020a021a022a023 a020a021a022a023 a100a101a102a103 a100a101a102a103 a110a111a112a113 a110a111a112a113 a120a121a122a123 a120a121a122a123三維數(shù)組的元素排列順序三維數(shù)組的元素排列順序5應(yīng)用2二維數(shù)組元素的表示形式為:二維數(shù)組元素的表示形式為:數(shù)組名下標(biāo)下標(biāo)數(shù)組名下標(biāo)下標(biāo) 例如:例如:a a2 23 3下標(biāo)可以是整型表達(dá)式,如下標(biāo)可以是整型表達(dá)式,如 a a2-12-12 2*2-12-1數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如:數(shù)組元素可以出現(xiàn)在表達(dá)式中,也
5、可以被賦值,例如:b b1 12 2=a=a2 23 3/2/2注意注意不要寫成不要寫成 a a2 2,3 3,a a2-12-1,2 2*2-12-1形式形式6應(yīng)用2常出現(xiàn)的錯誤有:常出現(xiàn)的錯誤有:int aint a3 34 4;/;/*定義定義a a為為3 34 4的數(shù)組的數(shù)組 */a a3 34 4=3;=3;在使用數(shù)組元素時,應(yīng)該注意下標(biāo)值應(yīng)在已定義在使用數(shù)組元素時,應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。的數(shù)組大小的范圍內(nèi)。7應(yīng)用2可以用下面可以用下面4 4種種方法對二維數(shù)組初始化方法對二維數(shù)組初始化數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式11常量表達(dá)式常量表達(dá)式2
6、2初始化數(shù)初始化數(shù)據(jù);據(jù);(1)(1)分行給二維數(shù)組賦初值。分行給二維數(shù)組賦初值。如:如:int aint a3 34 4=1=1,2 2,3 3,44,55,6 6,7 7,88,99,1010,1111,12;12;(2)(2)可以將所有數(shù)據(jù)寫在一個花括弧內(nèi),按數(shù)組排列的順序?qū)梢詫⑺袛?shù)據(jù)寫在一個花括弧內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值各元素賦初值。如:如:int aint a3 34 4=1=1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,1010,1111,12;12;8應(yīng)用2(3)(3)可以對部分元素賦初值可以對部分元素賦初值。如:如:int aint a3 3
7、4 4=1=1,55,9;9;1 0 0 01 0 0 05 0 0 0 5 0 0 0 9 0 0 09 0 0 0也可以對各行中的某一元素賦初值,如:int aint a3 34 4=1=1,00,66,00,0 0,11;11;1 0 0 01 0 0 00 6 0 00 6 0 00 0 0 110 0 0 11 1 0 0 01 0 0 05 6 0 0 5 6 0 0 0 0 0 00 0 0 0也可以只對某幾行元素賦初值。也可以只對某幾行元素賦初值。如:如:int aint a3 34 4=1=1,55,6;6;9應(yīng)用2(4)(4)如果對全部元素都賦初值,則定義數(shù)組時對第一維如果
8、對全部元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。的長度可以不指定,但第二維的長度不能省。如如:int aint a3 34 4=1=1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,1010,1111,12;12;它等價于:它等價于:int aint a4 4=1=1,2 2,3 3,4 4,5 5,6 6,7 7,8 8,9 9,1010,1111,12;12;在定義時也可以只對部分元素賦初值而省略第一維的在定義時也可以只對部分元素賦初值而省略第一維的長度,但應(yīng)分行賦初值。如:長度,但應(yīng)分行賦初值。如:int aint a4 4=0=0,0
9、0,33,00,10;10;0 0 3 00 0 0 00 10 0 010應(yīng)用211應(yīng)用212應(yīng)用2例例11.1 11.1 將一個二維數(shù)組行和列元素互換,存到另一將一個二維數(shù)組行和列元素互換,存到另一個個 二維數(shù)組中。二維數(shù)組中。#include void main()int a23=1,2,3,4,5,6;int b32,i,j;printf(array a:n);for(i=0;i=1;i+)for(j=0;j=2;j+)例如:a=1 2 3 1 4 4 5 6 b=2 5 3 613應(yīng)用2 printf(%5d,aij);bji=aij;printf(n);printf(array b
10、:n);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(%5d,bij);printf(n);/*程序結(jié)束程序結(jié)束*/運行結(jié)果如下:array a:1 2 3 4 5 6array b:1 4 2 5 3 6 14應(yīng)用2例例11.2 11.2 求二維數(shù)組,對角線元素之和求二維數(shù)組,對角線元素之和#include void main()int a55,i,j,s=0;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij;for(i=0;i5;i+)s=s+aii;printf(s=%d,s);15應(yīng)用2例例11.3:11.3:有一個有一個3
11、 34 4的矩陣,要求編程序求出其中值最大的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。的那個元素的值,以及其所在的行號和列號。先用先用N-SN-S流程圖表示算法流程圖表示算法 ,如下:如下:16應(yīng)用2程序如下:程序如下:#include void main()int i,j,row=0,colum=0,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;17應(yīng)用2for(i=0;i=2;i+)for(j=0;jmax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,
12、max,row,colum);/*程序結(jié)束程序結(jié)束*/18應(yīng)用2例例11.4:利用二維數(shù)組,輸出利用二維數(shù)組,輸出7行行7列的楊輝三角。列的楊輝三角。19應(yīng)用220應(yīng)用221應(yīng)用2例11.5 從鍵盤上輸入9個整數(shù),保存在二維數(shù)組中,按數(shù)組原來位置輸出第一行和第一列的所有元素。第0行第1行第2行 0列列列分析:1、輸入數(shù)組。2、輸出數(shù)組時要考慮不是所有數(shù)據(jù)都輸出。思考:應(yīng)該輸出的數(shù)據(jù)在位置關(guān)系上有何特點?(關(guān)鍵?。?2應(yīng)用2#include main()int i,j,a33;for(i=0;i3;i+)/*輸入數(shù)組*/for(j=0;j3;j+)printf(a%d%d=,i,j);scanf(%d,&aij;for(i=0;i3;i+)/*輸出數(shù)組*/for(j=0;j3;j+)if(i=1|j=1)printf(%-6d,aij);else printf(%-6c,);printf(“n”);23應(yīng)用2