第7章一維數(shù)組和二維數(shù)ppt課件_第1頁(yè)
第7章一維數(shù)組和二維數(shù)ppt課件_第2頁(yè)
第7章一維數(shù)組和二維數(shù)ppt課件_第3頁(yè)
第7章一維數(shù)組和二維數(shù)ppt課件_第4頁(yè)
第7章一維數(shù)組和二維數(shù)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第七章第七章 數(shù)組數(shù)組第第7 7章章 一維數(shù)組和二維數(shù)組一維數(shù)組和二維數(shù)組一、一維數(shù)組一、一維數(shù)組 1、一維數(shù)組的定義、一維數(shù)組的定義 2、一維數(shù)組元素的引用、一維數(shù)組元素的引用 3、一維數(shù)組的初始化、一維數(shù)組的初始化二、二維數(shù)組二、二維數(shù)組 1、二維數(shù)組的定義和引用、二維數(shù)組的定義和引用 2、二維數(shù)組的初始化、二維數(shù)組的初始化 前幾章使用的變量都屬于基本類型,例前幾章使用的變量都屬于基本類型,例如整型、字符型、浮點(diǎn)型數(shù)據(jù),這些都如整型、字符型、浮點(diǎn)型數(shù)據(jù),這些都是簡(jiǎn)單的數(shù)據(jù)類型。是簡(jiǎn)單的數(shù)據(jù)類型。 對(duì)于有些數(shù)據(jù),只用簡(jiǎn)單的數(shù)據(jù)類型是對(duì)于有些數(shù)據(jù),只用簡(jiǎn)單的數(shù)據(jù)類型是不夠的,難以反映出數(shù)據(jù)的特

2、點(diǎn),也難不夠的,難以反映出數(shù)據(jù)的特點(diǎn),也難以有效地進(jìn)行處理。以有效地進(jìn)行處理。 如果有如果有1000名學(xué)生,每個(gè)學(xué)生有一個(gè)名學(xué)生,每個(gè)學(xué)生有一個(gè)成績(jī),需要求這成績(jī),需要求這1000名學(xué)生的平均成名學(xué)生的平均成績(jī)。績(jī)。 用用s1,s2,s3,s1000表示每個(gè)學(xué)生的表示每個(gè)學(xué)生的成績(jī),能體現(xiàn)內(nèi)在聯(lián)系。成績(jī),能體現(xiàn)內(nèi)在聯(lián)系。 C語(yǔ)言為這些數(shù)據(jù),提供了一種構(gòu)造語(yǔ)言為這些數(shù)據(jù),提供了一種構(gòu)造數(shù)據(jù)類型:數(shù)組。所謂數(shù)組就是一組具數(shù)據(jù)類型:數(shù)組。所謂數(shù)組就是一組具有相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合。有相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合。 數(shù)組中的每一個(gè)數(shù)稱為數(shù)組元素,數(shù)數(shù)組中的每一個(gè)數(shù)稱為數(shù)組元素,數(shù)組中的每一個(gè)元素

3、都屬于同一個(gè)數(shù)據(jù)類組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型。型。一、一維數(shù)組一、一維數(shù)組一、一維數(shù)組一、一維數(shù)組1、一維數(shù)組的定義、一維數(shù)組的定義定義的格式:定義的格式: 類型說明符類型說明符 數(shù)組名數(shù)組名整常量表達(dá)式整常量表達(dá)式; 如如: int score80;闡明:闡明:類型說明符:數(shù)組元素的類型。類型說明符:數(shù)組元素的類型。數(shù)組名:即數(shù)組的名稱,其命名方法同變量名。數(shù)組名:即數(shù)組的名稱,其命名方法同變量名。在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。度。常

4、量表達(dá)式中可以包括常量和符號(hào)常量,但不能常量表達(dá)式中可以包括常量和符號(hào)常量,但不能包含變量。也就是說,包含變量。也就是說,C語(yǔ)言不允許對(duì)數(shù)組的大小語(yǔ)言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過程作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過程中變量的值。中變量的值。例例:float farr30;或或:#define N 10 int aN;但注意但注意: int n=10; int arrn;數(shù)組說明中其他常見的錯(cuò)誤:數(shù)組說明中其他常見的錯(cuò)誤: float a0; /* 數(shù)組大小為數(shù)組大小為0沒有意義沒有意義 */ int b(2)(3); /* 不能使用圓括號(hào)不能使用圓括號(hào)

5、*/ int k, ak; /* 不能用變量說明數(shù)組大小不能用變量說明數(shù)組大小*/ 引用方式:引用方式: 數(shù)組名數(shù)組名下標(biāo)下標(biāo)如如:int a5; a0=1; printf(”%d”,a0); 2、一維數(shù)組元素的引用、一維數(shù)組元素的引用把把a(bǔ)0的變量賦值為的變量賦值為1a數(shù)組中有數(shù)組中有5個(gè)元素個(gè)元素,分別是分別是:a0,a1,a2,a3,a4顯示顯示a0的值的值留意:留意:下標(biāo)可以是整型常量或整型表達(dá)式下標(biāo)可以是整型常量或整型表達(dá)式 例如例如: int i=0,a5;ai=10; 引用引用a5 是錯(cuò)誤的是錯(cuò)誤的一維數(shù)組元素引用的規(guī)定:一維數(shù)組元素引用的規(guī)定:數(shù)組必須先定義后使用。數(shù)組必須先定

6、義后使用。數(shù)組元素只能逐個(gè)被引用,不能一次引用整數(shù)組元素只能逐個(gè)被引用,不能一次引用整個(gè)數(shù)組。個(gè)數(shù)組。對(duì)數(shù)組中所有元素逐個(gè)引用時(shí),通常可使用對(duì)數(shù)組中所有元素逐個(gè)引用時(shí),通常可使用循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)。 例例 對(duì)對(duì)10個(gè)數(shù)組元素依次賦值為個(gè)數(shù)組元素依次賦值為0,1, 2,3,4,5,6,7,8,9,要求按逆序輸出。,要求按逆序輸出。解題思路:解題思路:定義一個(gè)長(zhǎng)度為定義一個(gè)長(zhǎng)度為10的數(shù)組,數(shù)組定義為整型的數(shù)組,數(shù)組定義為整型要賦的值是從要賦的值是從0到到9,可以用循環(huán)來(lái)賦值,可以用循環(huán)來(lái)賦值用循環(huán)按下標(biāo)從大到小輸出這用循環(huán)按下標(biāo)從大到小輸出這10個(gè)元素個(gè)元素#include int main()

7、 int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 使使a0a9的值為的值為090123456789a0a1a2a3a4a5a6a7a8a9#include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 先輸出先輸出a9,最,最后輸出后輸出a00123456789a0a1a2a3a4a5a6a7a8a93、一維數(shù)組在內(nèi)存中的存放方式、一維數(shù)組在內(nèi)存中的存放方式 數(shù)組定義以后,編譯系統(tǒng)計(jì)算機(jī)將在內(nèi)數(shù)組定義

8、以后,編譯系統(tǒng)計(jì)算機(jī)將在內(nèi)存中開辟一塊連續(xù)的存儲(chǔ)單元用于存放數(shù)組元素,存中開辟一塊連續(xù)的存儲(chǔ)單元用于存放數(shù)組元素,數(shù)組名表示存儲(chǔ)單元的首地址,存儲(chǔ)單元的大小數(shù)組名表示存儲(chǔ)單元的首地址,存儲(chǔ)單元的大小由數(shù)組的類型和數(shù)組的大小決定。由數(shù)組的類型和數(shù)組的大小決定。例如例如 int a5;aa 4 a 3 a 2 a 1 a 0 2字節(jié)字節(jié)2字節(jié)字節(jié)2字節(jié)字節(jié)2字節(jié)字節(jié)2字節(jié)字節(jié)數(shù)組的初始化:定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。數(shù)組的初始化:定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。4、一維數(shù)組的初始化、一維數(shù)組的初始化格式:格式: 類型符類型符 數(shù)組名數(shù)組名表達(dá)式表達(dá)式初值表初值表;給全部元素賦初值。給全部元素賦初值

9、。 例例 int a8= 0,1,2,3,4,5,6,7 ;給部分元素賦初值。給部分元素賦初值。 例例 int a8= 0,1,2,3,4 ;給全部元素賦初值時(shí)可不指定數(shù)組的長(zhǎng)度。給全部元素賦初值時(shí)可不指定數(shù)組的長(zhǎng)度。 例例 int a = 0,1,2,3,4,5,6,7 ;例例7.2 用數(shù)組處理用數(shù)組處理Fabonacci數(shù)列數(shù)列,輸出前輸出前20個(gè)數(shù)。個(gè)數(shù)。1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, F1 = 1F2 = 1F3 = F2 + F1Fn = Fn - 1 + Fn - 2#incl

10、ude void main()int i;int f20=1,1;for(i=2;i20;i+) fi=fi-1+fi-2;for(i=0;i20;i+)if(i%5=0) printf(“n”);printf(“%12d”,fi); return;if語(yǔ)句用來(lái)控語(yǔ)句用來(lái)控制換行,每行制換行,每行輸出輸出5個(gè)數(shù)據(jù)。個(gè)數(shù)據(jù)。 例:有6個(gè)數(shù),要求對(duì)它們按由小到大的順序排列解題思路:排序的規(guī)律有兩種:一種是“升序”,從小到大;另一種是“降序”,從大到小把題目抽象為:“對(duì)6個(gè)數(shù)按升序排序”采用起泡法排序985420895420859420854920854290854209大數(shù)沉淀,小數(shù)起泡大數(shù)沉淀,

11、小數(shù)起泡a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 854209584209548209542809542089a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 542089452089425089420589a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 420589240589204589a0a1a2a3a4a5for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; 204589024589a0a1a2a3a4a5for(i=0;

12、iai+1) t=ai;ai=ai+1;ai+1=t; for(i=0;iai+1) for(i=0;iai+1) for(i=0;iai+1) for(i=0;iai+1) for(j=0;j5;j+)程序:程序: void main( ) int a6, i, j, k; printf(請(qǐng)任意輸入請(qǐng)任意輸入6個(gè)整數(shù):個(gè)整數(shù):n); for ( i=0 ; i5 ; i+) scanf(%d, &ai) ; printf(n) ; for ( i=0; i5; i+) for ( j=0; jaj+1) k=aj;aj=aj+1;aj+1=k; printf(按由小到大的順序輸出按由

13、小到大的順序輸出10個(gè)整數(shù)是:個(gè)整數(shù)是:n); for (i=0; i5; i+) printf(%d, ,ai); printf(b。n); 二、二維數(shù)組二、二維數(shù)組1、二維數(shù)組的定義和引用、二維數(shù)組的定義和引用二維數(shù)組的定義格式:二維數(shù)組的定義格式:類型說明符類型說明符 數(shù)組名數(shù)組名整常量表達(dá)式整常量表達(dá)式1整常量表達(dá)式整常量表達(dá)式2行數(shù)行數(shù)元素個(gè)數(shù)元素個(gè)數(shù)=行行數(shù)數(shù)*列數(shù)列數(shù)列數(shù)列數(shù)例:例:float a34,b510;二維數(shù)組元素的引用格式:二維數(shù)組元素的引用格式: 數(shù)組名數(shù)組名下標(biāo)下標(biāo)1下標(biāo)下標(biāo)2下標(biāo)都是從下標(biāo)都是從0開始開始例:例:int m23; 共有共有6個(gè)元素,分別是:個(gè)元素

14、,分別是: m00 m01 m02 m10 m11 m12 m03 m21 m23都是錯(cuò)誤的引用都是錯(cuò)誤的引用二維數(shù)組的存儲(chǔ)方式:二維數(shù)組的存儲(chǔ)方式: a00 a02 a10 a12 a20 a22 a01 a03 a11 a13 a21 a23 二維數(shù)組在內(nèi)存中按行存放二維數(shù)組在內(nèi)存中按行存放,例例:int a34;第0行第1行第2行2、二維數(shù)組的初始化、二維數(shù)組的初始化二維數(shù)組初始化通常是按行進(jìn)行的。二維數(shù)組初始化通常是按行進(jìn)行的。格式:格式:類型符類型符 數(shù)組名數(shù)組名表達(dá)式表達(dá)式1表達(dá)式表達(dá)式2=初值表初值表;給全部元素賦初值。給全部元素賦初值。 例例 int a34=0,1,2,3,4

15、,5,6,7,8,9,10,11; 或?qū)懗苫驅(qū)懗? int a34=0,1,2,3,4,5,6,7,8,9,10,11;給部分元素賦初值。給部分元素賦初值。 例例: int a34=0,1,4,5,6,8,9,10,11; 或?qū)懗苫驅(qū)懗? int b34=0,1,2,3,4,5,6 ;給二維數(shù)組的全部元素賦初值,可以不指定第一給二維數(shù)組的全部元素賦初值,可以不指定第一維的長(zhǎng)度,但第二維的長(zhǎng)度不能省略。維的長(zhǎng)度,但第二維的長(zhǎng)度不能省略。 例例: int a 4=0,1,2,3,4,5,6,7,8,9,10,11; 或?qū)懗苫驅(qū)懗? int a 4=0,1,2,3,4,5,6,7,8,9,10,11

16、;0 1 0 04 5 6 08 9 10 110 1 2 34 5 6 00 0 0 0例例7.4 矩陣的轉(zhuǎn)置。矩陣的轉(zhuǎn)置。分析:將矩陣分析:將矩陣Am*n行列互換后,得一新矩陣為行列互換后,得一新矩陣為Bn*m。 它們的元素對(duì)應(yīng)關(guān)系為:它們的元素對(duì)應(yīng)關(guān)系為: bj, i = ai, j程序:程序:void main( ) int a23=1,2,3,4,5,6, b32, i, j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); printf(n); for(i=0;i=1;i+) for( j=0;

17、j=2;j+) bji=aij; printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); 例例7.5有一個(gè)有一個(gè)34的矩陣,編程求出其中值最大的那的矩陣,編程求出其中值最大的那個(gè)元素,以及其所在的行號(hào)和列號(hào)。個(gè)元素,以及其所在的行號(hào)和列號(hào)。(最大值唯一最大值唯一) 1 2 3 4 9 8 7 10 -10 6 -5 2a1maxi ji ji j2i j34 9i ji ji ji ji j10i ji ji j#include void main( ) int i,j,row,colum,m

18、ax; int a34=1,2,3,4,9,8,7,10,-10,6,-5,2; max=a00; row=colum=0; for(i=0;i=2;i+) for(j=0;jmax) max=aij;row=i;colum=j; printf(max=%d,row=%d,colum=%dn,max,row,colum); for(j=0;j3;j+) cj=a0j; for(i=1;i2;i+) if(aijcj) cj=aij; a數(shù)組數(shù)組b數(shù)組數(shù)組c數(shù)組數(shù)組 void main( ) int a23,b2,c3,i, j; for(i=0;i2;i+) for(j=0;j3;j+) scanf(%d,&ai j)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論