C語言數(shù)組課件_第1頁
C語言數(shù)組課件_第2頁
C語言數(shù)組課件_第3頁
C語言數(shù)組課件_第4頁
C語言數(shù)組課件_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、7.1.1C程序設(shè)計引例:引例:從鍵盤依次輸入從鍵盤依次輸入1010個整數(shù),累計求和。個整數(shù),累計求和。main()main() int i,s,x; int i,s,x;for(s=0,i=1;i=10;i+)for(s=0,i=1;i=0; i - -) printf(“%d”, ai);for (i=0; i=9; i+) scanf(“%d”, &ai);8.9C語言程序設(shè)計練習:練習:輸入十個數(shù),統(tǒng)計并輸出總和、平均值、最大值和最小值。輸入十個數(shù),統(tǒng)計并輸出總和、平均值、最大值和最小值。 for(i=0; i10; i+) scanf(“%d”,&ai); sum=0

2、; for(i=0; i10; i+) sum=sum+ai; /*計算平均值計算平均值*/ave=sum/10;8.10C語言程序設(shè)計練習:練習:輸入十個數(shù),統(tǒng)計并輸出總和、平均值、最大值和最小值。輸入十個數(shù),統(tǒng)計并輸出總和、平均值、最大值和最小值。 max=a0; for(i=0; imax) max=ai; min=a0; for(i=0; i10; i+) if(aimin) min=ai;8.11C語言程序設(shè)計查找:查找:從從m個數(shù)中去查找個數(shù)中去查找x的值是否存在。的值是否存在。順序查找:從頭到尾逐個去找順序查找:從頭到尾逐個去找折半查找:前提條件:只適用于已排好序的數(shù)列。折半查找

3、:前提條件:只適用于已排好序的數(shù)列。順序查找:順序查找:例:例: for(i=0; i10; i+) if (x=ai) k=i; break; if (k10) printf(“ x是第是第d個元素個元素”, k+1); else printf(“沒找到!沒找到!”);8.12C語言程序設(shè)計刪除:刪除:例:例: for(i=0; i10; i+) if (x=ai) k=i; break; 例:例: for(i=0; i10; i+) if (x=ai) k=i; break; if (k10) for(i=k; i10; i+) ai = ai+1; else printf(“無此數(shù)!無此

4、數(shù)!”);7.1.13C程序設(shè)計define N 10Main( ) int aN, i, max;for (i=0; iN; i+) scanf(“%d”, &ai);例例2:從鍵盤任意輸入:從鍵盤任意輸入10個整數(shù),求它們當中的最大值。個整數(shù),求它們當中的最大值。max=a0;for (i=1; imax) max=ai; printf(“max=%dn”, max);7.1.14C程序設(shè)計4 4、一維數(shù)組的初始化、一維數(shù)組的初始化數(shù)組的初始化數(shù)組的初始化就是在定義數(shù)組的同時給其數(shù)組元素賦初值。就是在定義數(shù)組的同時給其數(shù)組元素賦初值。格式格式: :數(shù)據(jù)類型標識符數(shù)據(jù)類型標識符 數(shù)組

5、名數(shù)組名 元素個數(shù)元素個數(shù)= 數(shù)值數(shù)值1 1,數(shù)值,數(shù)值2 2,. . .數(shù)值數(shù)值n n ; ;說明說明: : 花括號花括號 中的數(shù)值是給數(shù)組元素賦初值的數(shù)值。賦值是按對應(yīng)次序進行中的數(shù)值是給數(shù)組元素賦初值的數(shù)值。賦值是按對應(yīng)次序進行,并且用逗號,并且用逗號“,”,”分開。分開。 如如:int x5=3,4,7,8,10;:int x5=3,4,7,8,10;則則x0=3,x1=4,x2=7,x3=8,x4=10 x0=3,x1=4,x2=7,x3=8,x4=10 花括號花括號 中的數(shù)值的個數(shù)要少于等于數(shù)組元素的個數(shù)。此時,多余的數(shù)中的數(shù)值的個數(shù)要少于等于數(shù)組元素的個數(shù)。此時,多余的數(shù)組元素初

6、始化的數(shù)值為組元素初始化的數(shù)值為0 0。 如:如:int x5= 3,4,7 ;int x5= 3,4,7 ;則則x0=3, x1=4, x2=7, x3=0, x4=0 x0=3, x1=4, x2=7, x3=0, x4=0。 花括號花括號 中的數(shù)值的個數(shù)多于數(shù)組元素的個數(shù)是中的數(shù)值的個數(shù)多于數(shù)組元素的個數(shù)是語法錯誤語法錯誤。 在數(shù)組定義中,可缺省方括號中的元素個數(shù),由花括號中所賦初始值的數(shù)在數(shù)組定義中,可缺省方括號中的元素個數(shù),由花括號中所賦初始值的數(shù)值個數(shù)來決定數(shù)組元素個數(shù)。值個數(shù)來決定數(shù)組元素個數(shù)。 如如: int y = 6,4,1,7,8,10 ; : int y = 6,4,1

7、,7,8,10 ; 等價于等價于int y6= 6,4,1,7,8,10 ;int y6= 6,4,1,7,8,10 ;7.1.15C程序設(shè)計 任意給10個數(shù),按由小到大對其排序,并輸出結(jié)果。采用“起泡”排序法.起泡法的思路起泡法的思路: :將相鄰兩個數(shù)比較將相鄰兩個數(shù)比較, ,將小的數(shù)調(diào)到前頭將小的數(shù)調(diào)到前頭( (或?qū)⒋蟮臄?shù)調(diào)到后面或?qū)⒋蟮臄?shù)調(diào)到后面) )。第一趟:第1次 第2次 第3次 第4次 第5次 結(jié)果結(jié)果 9 8 8 8 8 8 8 9 5 5 5 5 5 5 9 4 4 4 4 4 4 9 2 2 2 2 2 2 9 0 0 0 0 0 0 9 5 5、一維數(shù)組的應(yīng)用舉例、一維數(shù)組

8、的應(yīng)用舉例若有6個數(shù),分別是9,8,5,4,2,0。第一趟第一趟 ( (見下圖見下圖) ):第一次,將第1個數(shù)8和第2個數(shù)9進行比較,將小的數(shù)調(diào)到前頭,即8和9對調(diào)位置。第二次,將第2個數(shù)9和第3個數(shù)5進行比較,將小的數(shù)調(diào)到前頭,既9和5對調(diào)位置。第三次、第四次、第五次,如此進行共5次,結(jié)果得到8-5-4-2-0-9的順序,最大的數(shù)9成為最下面的一個數(shù)。最大的數(shù)位置“沉底”,小數(shù)向上“浮起”一個位置。7.1.16C程序設(shè)計第二趟對余下的5個數(shù)(8-5-4-2-0)按上述的方法進行下去。經(jīng)過四次比較,得到次大的數(shù)8。如此進行下去。6個數(shù)要比較5趟。結(jié)果得到:5-4-2-0-8的順序,次大的數(shù)8“

9、沉底”。第一趟,比較五次。第二趟,比較四次。第三趟,比較三次。. . .第五趟,比較一次。第n趟,比較n-1次。如果有n個數(shù),則進行n-1趟比較。在第i趟的比較中要進行n-i次兩兩比較。第二趟:第1次 第2次 第3次 第4次 結(jié)果結(jié)果 8 5 5 5 5 5 8 4 4 4 4 4 8 2 2 2 2 2 8 0 0 0 0 0 8第三趟: 結(jié)果結(jié)果 4 2 0 5第四趟: 結(jié)果結(jié)果 2 0 4 第五趟: 結(jié)果結(jié)果 0 2最后6個數(shù)的排序結(jié)果是: 0-2-4-5-8-9(從小到大)。第二趟第二趟( (見下圖見下圖) ):7.1.17C程序設(shè)計程序:程序:main( ) int a10; int

10、 i,j,t; printf(“input 10 numbers :n”); for(i=0;i10;i+) scanf(“%d”,&ai); printf(“n”); for(j=0;j9;j+) for(i=0;iai+1) t =ai; ai=ai+1; ai+1=t; printf(“the sorted numbers:n”); for(i=0;i10;i+) printf(“%d ”,ai);/將將1010個數(shù)輸入數(shù)組個數(shù)輸入數(shù)組a10a10中。中。/j/j是趟次循環(huán)變量(外循環(huán)變量),是趟次循環(huán)變量(外循環(huán)變量),/i/i是每次循環(huán)變量(內(nèi)循環(huán)變量)。是每次循環(huán)變量(內(nèi)循

11、環(huán)變量)。/(按下標排序)前后兩數(shù)進行比較,(按下標排序)前后兩數(shù)進行比較,/前者大于后者,則兩數(shù)交換位置。即前者大于后者,則兩數(shù)交換位置。即/小數(shù)在前,大數(shù)在后。小數(shù)在前,大數(shù)在后。input 10 numbers:1 0 4 8 12 65 -76 100 -45 123 the sorted numbers:-76 -45 0 1 4 8 12 65 100 1237.1.18C程序設(shè)計程序:程序:main( ) int a11; int i,j,t; printf(“input 10 numbers :n”); for(i=1;i11;i+) scanf(“%d”,&ai);

12、printf(“n”); for(j=1;j=9;j+) for(i=1;iai+1) t =ai; ai=ai+1; ai+1=t; printf(“the sorted numbers:n”); for(i=1;i11;i+) pintf(“%d ”,ai);/將將1010個數(shù)輸入數(shù)組個數(shù)輸入數(shù)組a11a11中。中。/j/j是趟次循環(huán)變量(外循環(huán)變量),是趟次循環(huán)變量(外循環(huán)變量),/i/i是每次循環(huán)變量(內(nèi)循環(huán)變量)。是每次循環(huán)變量(內(nèi)循環(huán)變量)。/(按下標排序)前后兩數(shù)進行比較,(按下標排序)前后兩數(shù)進行比較,/前者大于后者,則兩數(shù)交換位置。即前者大于后者,則兩數(shù)交換位置。即/小數(shù)在前

13、,大數(shù)在后。小數(shù)在前,大數(shù)在后。input 10 numbers:1 0 4 8 12 65 -76 100 -45 123 the sorted numbers:-76 -45 0 1 4 8 12 65 100 1237.1.19C程序設(shè)計7.2 多維數(shù)組多維數(shù)組 數(shù)組名后有兩個下標數(shù)組叫二維數(shù)組,有三個下標的數(shù)組叫三維數(shù)數(shù)組名后有兩個下標數(shù)組叫二維數(shù)組,有三個下標的數(shù)組叫三維數(shù)組組, ,下標個數(shù)大于或等于下標個數(shù)大于或等于2 2的數(shù)組叫多維數(shù)組。的數(shù)組叫多維數(shù)組。1 1、多維數(shù)組的定義、多維數(shù)組的定義多維數(shù)組定義的格式:多維數(shù)組定義的格式:數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 下標下標11下標

14、下標22下標下標nn;說明:數(shù)據(jù)類型、數(shù)組名的說明同一維數(shù)組的說明。下標為整型常量或整型常量表達式。數(shù)組元素個數(shù)為:下標1 下標2 . . . . 下標n 。下標值從0開始。7.1.20C程序設(shè)計 x x 是二維數(shù)組,共有是二維數(shù)組,共有6 6個元素個元素 (2(23=6)3=6),它們是:,它們是: x00, x01, x02,x00, x01, x02, x10, x11, x12 x10, x11, x12。 其全部元素數(shù)值均為其全部元素數(shù)值均為 int int 型。型。 x0:x1:X二維數(shù)組例:二維數(shù)組例: int x23;int x23;7.1.21C程序設(shè)計三維數(shù)組例三維數(shù)組例:

15、 float y234;: float y234;y y 是三維數(shù)組,共有是三維數(shù)組,共有2424個元素個元素(2(23 34=24)4=24),它們是:,它們是: y000 y001 y002 y003 y010 y011 y012 y013 y020 y121 y022 y023 y100 y101 y102 y103 y110 y111 y112 y113 y120 y121 y122 y123 其全部元素數(shù)值均為其全部元素數(shù)值均為 float float 型。型。7.1.22C程序設(shè)計 X00 X01 X02 X10 X11 X12二維數(shù)組的存儲 Y000 Y001 Y002 Y003

16、 Y010 Y011 . Y120 Y121 Y122 Y123 三維數(shù)組的存儲對于三維數(shù)組,也是按下標先后順序(從最小下標值開始)存放。 如: float y234;先放第一下標為0的行,y000 y001 y002 y003 y010 y011 y012 y013 . y020 y121 y022 y023再放第一下標為1的行,y100 y101 y102 y103 . y110 y111 y112 y113 y120 y121 y122 y1232 2 多維數(shù)組的存儲形式多維數(shù)組的存儲形式 多維數(shù)組在內(nèi)存中按下標順序依次存儲在內(nèi)存的連續(xù)空間中。對于二維數(shù)組,是按下標先后順序(從最小下標值

17、開始)存放。 如: int x23; 先放第一下標為0的行,即 x00, x01, x02, 再放第一下標為1的行,即 x10, x11, x12.7.1.23C程序設(shè)計例:例:int z410,a457,b45,i,j,k,m;int z410,a457,b45,i,j,k,m; z10=1; z10=1; ai2 ai2* *k-1m+3=z10;k-1m+3=z10; b00=10; b00=10; b45=z10; b45=z10; 3 3 多維數(shù)組的引用多維數(shù)組的引用 同一維數(shù)組一樣,先定義、后引用;不能對一個多維數(shù)組的整體進行引用,同一維數(shù)組一樣,先定義、后引用;不能對一個多維數(shù)組

18、的整體進行引用,只能對具體的數(shù)組元素進行引用。其引用的格式為:只能對具體的數(shù)組元素進行引用。其引用的格式為:二維數(shù)組的引用格式:二維數(shù)組的引用格式: 數(shù)組名數(shù)組名 下標下標11下標下標22三維數(shù)組的引用格式:三維數(shù)組的引用格式: 數(shù)組名數(shù)組名 下標下標11下標下標22下標下標33說明:說明:下標值必須大于等于下標值必須大于等于0 0的整型常量、常量表達式、變量或變量表達式。的整型常量、常量表達式、變量或變量表達式。數(shù)組中要特別注意下標越限。因為程序編譯系統(tǒng)不檢查數(shù)組下標越限問題數(shù)組中要特別注意下標越限。因為程序編譯系統(tǒng)不檢查數(shù)組下標越限問題, ,所以程序設(shè)計者應(yīng)特別注意。所以程序設(shè)計者應(yīng)特別注意。7.1.24C程序設(shè)計 例:二維數(shù)組例:二維數(shù)組 int x23=1,2,3,4,5,6;int x23=1,2,3,4,5,6; 初始化結(jié)果是:初始化結(jié)果是: x00=1 x01=2 x02=3x00=1 x01=2 x02=3 x10=4 x11=5 x12=6 x10=4 x11=5 x12=6 也可寫成也可寫成:int x 3=1,2,3,4,5,6;:int x 3=1,2,3,4,5,6;即第一下標省略即第一下標省略, ,但第二下標不能省略。但第二

溫馨提示

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

評論

0/150

提交評論