




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章l 本章要點l 主要內(nèi)容6.1 6.1 一維數(shù)組的定義和援用一維數(shù)組的定義和援用6.2 6.2 二維數(shù)組的定義和援用二維數(shù)組的定義和援用6.3 6.3 字符數(shù)組字符數(shù)組1.1.一維數(shù)組的定義格式為:一維數(shù)組的定義格式為:類型闡明符類型闡明符 數(shù)組名常量表達式;數(shù)組名常量表達式;例如:例如: int a int a1010; ; 它表示定義了一個整形數(shù)組,數(shù)組名為它表示定義了一個整形數(shù)組,數(shù)組名為a a,此數(shù)組,此數(shù)組有有1010個元素。個元素。闡明:闡明: 1.數(shù)組名定名規(guī)那么和變量名一樣,遵數(shù)組名定名規(guī)那么和變量名一樣,遵照標(biāo)識符定名規(guī)那么。照標(biāo)識符定名規(guī)那么。2.在定義數(shù)組時,需求指
2、定數(shù)組中元素的個數(shù),方括弧中的常量表達式用來表示元素的個數(shù),即數(shù)組長度。eg:int a10;10表示有數(shù)組有10個元素,下標(biāo)從0開場至常量表達式-1終了.留意不能運用數(shù)組a10.3.常量表達式中可以包括常量和符號常量,但不能包含變量。eg:#define M 10 int aM;int n;scanf(“%d,&n);int an;2.2.一維數(shù)組在內(nèi)存中的存放一維數(shù)組在內(nèi)存中的存放每個數(shù)據(jù)元每個數(shù)據(jù)元素占用的字素占用的字節(jié)數(shù),就是節(jié)數(shù),就是基類型的字基類型的字節(jié)數(shù)節(jié)數(shù)一個元素占一個元素占4個字節(jié)個字節(jié)一維數(shù)組:一維數(shù)組: float mark100; float mark100;m
3、ark0mark1mark2mark3.mark9986.592.077.552.0.94.0低地址低地址 高地址高地址留意:留意:1 1定義下標(biāo)表達式的值必需定義下標(biāo)表達式的值必需=0,=0,而且小于定義而且小于定義時的常量表達式時的常量表達式-1.-1.系統(tǒng)對數(shù)組元素越界不檢查系統(tǒng)對數(shù)組元素越界不檢查. .2 2一個數(shù)組不能整體援用一個數(shù)組不能整體援用.eg:a.eg:a不能代表一切元不能代表一切元素素a0a0到到a4.a4. 6.1.2 6.1.2一維數(shù)組元素的援用一維數(shù)組元素的援用1.1.數(shù)組元素的援用方式數(shù)組元素的援用方式數(shù)組名下標(biāo)數(shù)組名下標(biāo)下標(biāo)可以是整型常量或整型表達式。下標(biāo)可以是
4、整型常量或整型表達式。例如例如: double x8;: double x8; 那么那么x0,xi,xi+jx0,xi,xi+j都是合法都是合法的。的。對數(shù)組元素初始化的實現(xiàn)方法:對數(shù)組元素初始化的實現(xiàn)方法: 1. 1.在定義數(shù)組時對數(shù)組元素賦以初值。在定義數(shù)組時對數(shù)組元素賦以初值。例如例如:int a:int a1010=0,1,2,3,4,5,6,7,8,9;=0,1,2,3,4,5,6,7,8,9;將數(shù)組元素的初值依次放在一對花括弧內(nèi)。經(jīng)過上面的定義和初始化之后,將數(shù)組元素的初值依次放在一對花括弧內(nèi)。經(jīng)過上面的定義和初始化之后,a a0 0=0=0,a a1 1=1=1,a a2 2=2
5、=2,a a3 3=3=3,a a4 4=4=4,a a5 5=5=5,a a6 6=6=6,a a7 7=7=7,a a8 8=8=8,a a9 9=9=9。 6.1.3 6.1.3一維數(shù)組的初始化一維數(shù)組的初始化 3. 3. 假設(shè)想使一個數(shù)組中全部元素值為假設(shè)想使一個數(shù)組中全部元素值為0 0,可以寫成,可以寫成: : int a int a1010=0,0,0,0,0,0,0,0,0,0;=0,0,0,0,0,0,0,0,0,0; 或或int aint a1010=0;=0; 不能寫成:不能寫成:int aint a1010=0=0* *10;10;不能給數(shù)組整體賦初值不能給數(shù)組整體賦初值
6、. . 2. 2. 可以只給一部分元素賦值。可以只給一部分元素賦值。例如例如: int a: int a1010=0=0,1 1,2 2,3 3,4; 4; 定義定義a a數(shù)組有數(shù)組有1010個元素,但花括弧內(nèi)只提供個元素,但花括弧內(nèi)只提供5 5個初值,這表示只給前面?zhèn)€初值,這表示只給前面5 5個元素賦初個元素賦初值,后值,后5 5個元素值為個元素值為0 0。4. 4. 在對全部數(shù)組元素賦初值時,由于數(shù)據(jù)的個數(shù)曾在對全部數(shù)組元素賦初值時,由于數(shù)據(jù)的個數(shù)曾經(jīng)確定,因此可以不指定數(shù)組長度。經(jīng)確定,因此可以不指定數(shù)組長度。 例如例如:int a:int a5 5=1=1,2 2,3 3,4 4,5;
7、5; 也可以寫成也可以寫成 int a int a=1=1,2 2,3 3,4 4,5; 5; int a int a1010=1=1,2 2,3 3,4 4,5; 5; 只初始化前只初始化前5 5個個元素,后元素,后5 5個元素為個元素為0 0。留意留意: :1 1 未初始化時未初始化時, ,元素值不確定元素值不確定. .2 2各元素不可騰躍初始化各元素不可騰躍初始化. .3 3當(dāng)初值個數(shù)少于數(shù)組長度時當(dāng)初值個數(shù)少于數(shù)組長度時, ,后面后面元素值自動為元素值自動為0.0.4 4初始化數(shù)據(jù)個數(shù)不可大于數(shù)組元素初始化數(shù)據(jù)個數(shù)不可大于數(shù)組元素個數(shù)個數(shù) . .例例6.16.1從鍵盤輸入從鍵盤輸入20
8、20個數(shù)個數(shù), ,逆序輸出逆序輸出#include “stdio.h#include “stdio.hmain()main() int a20,i; int a20,i; for(i=0;i20;i+) for(i=0;i=0;i-) for(i=19;i=0;i-) printf(“%d printf(“%d,ai);,ai); 例例6.26.2輸入輸入1010個數(shù),從小到大輸出個數(shù),從小到大輸出選擇排序選擇排序: :將一個數(shù)和其數(shù)后面的一切數(shù)比較將一個數(shù)和其數(shù)后面的一切數(shù)比較冒泡排序冒泡排序: :相鄰兩個數(shù)比較相鄰兩個數(shù)比較#include#includestdio.hstdio.hmai
9、n()main()int a10,i,j,t;int a10,i,j,t;printf(“input 10 number:nprintf(“input 10 number:n););for(i=0;i10;i+)for(i=0;i10;i+)scanf(“%dscanf(“%d,&ai); ,&ai); for(i=0;i9;i+)for(i=0;i9;i+)for(j=i+1;j10;j+)for(j=i+1;jaaj j) ) t=ai;ai=aj; t=ai;ai=aj; a aj j=t;=t; for(i=0;i10;i+)for(i=0;i10;i+) printf
10、(%d ,a printf(%d ,ai i); ); printf(n); printf(n); 第一趟比較假設(shè)有n個數(shù),那么要進展n-1趟比較。在第1趟比較中要進展n-1次兩兩比較,在第j趟比較中要進展n-j次兩兩比較。#include#includestdio.hstdio.hmain()main()int a10,i,j,t;int a10,i,j,t;printf(“input 10 numbers:nprintf(“input 10 numbers:n););for(“i=0;i10;i+for(“i=0;i10;i+) )scanf(“%dscanf(“%d,&ai);,
11、&ai);for(i=1;i10;j+)for(i=1;i10;j+) for(j=0;j10-i;j+) for(j=0;jaaj+1j+1) ) t=aj;aj=aj+1; t=aj;aj=aj+1; a aj+1j+1=t;=t; printf(the sorted numbers :n); printf(the sorted numbers :n); for(i=0;i10;i+) for(i=0;i10;i+) printf(%d ,a printf(%d ,ai i);); printf(n); printf(n);/* *程序終了程序終了* */ /程序運轉(zhuǎn)結(jié)果如下:程序
12、運轉(zhuǎn)結(jié)果如下:input 10 numbers:input 10 numbers:1 0 4 8 12 65 -76 100 -45 1231 0 4 8 12 65 -76 100 -45 123the sorted numbers:the sorted numbers:-76 -45 0 1 4 8 12 65 100 123-76 -45 0 1 4 8 12 65 100 123 6.2 二維數(shù)組的定義和援用 6.2.16.2.1二維數(shù)組的定義二維數(shù)組的定義二維數(shù)組定義的普通方式為二維數(shù)組定義的普通方式為類型闡明符類型闡明符 數(shù)組名常量表達式常量表達式;數(shù)組名常量表達式常量表達式;例如
13、:定義例如:定義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 a float a3 3,4 4,b b5 5,1010; ;留意:我們可以把二維數(shù)組看作是一種特殊的留意:我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個一維數(shù)組。一維數(shù)組:它的元素又是一個一維數(shù)組。例如:可以把例如:可以把a a看作是一個一維數(shù)組,它有看作是一個一維數(shù)組,它有3 3個個元素:元素:a a0 0、a a1 1、a
14、 a2 2,每個元素又,每個元素又是一個包含是一個包含4 4個元素的一維數(shù)組。個元素的一維數(shù)組。 6.2.1二維數(shù)組的定義 二維數(shù)組中的元素在內(nèi)存中的陳列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素 二維數(shù)組元素的表示方式為:數(shù)組名下標(biāo)下標(biāo)例如: a23下標(biāo)可以是整型表達式,如 a2-12*2-1數(shù)組元素可以出如今表達式中,也可以被賦值例如:b12=a23/2不要寫成不要寫成 a a2 2,3 3,a a2-12-1,2 2* *2-12-1方式方式 6.2.2二維數(shù)組的援用例:例: int aint a3 34 4; /; /* * 定義定義a a為為3 34 4的數(shù)組的數(shù)
15、組 * */ / a a3 34 4=3; =3; 在運用數(shù)組元素時,應(yīng)該留意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。可以用下面可以用下面4 4種方法對二維數(shù)組初始化:種方法對二維數(shù)組初始化:數(shù)據(jù)類型 數(shù)組名 常量表達式1常量表達式2初始化數(shù)據(jù);.分行給二維數(shù)組賦初值。例如: int a34=1,2,3,4,5,6,7,8,9,10,11,12; .可以將一切數(shù)據(jù)寫在一個花括號內(nèi),按數(shù)組陳列的順序?qū)Ω髟刭x初值。例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12; 6.2.3 6.2.3二維數(shù)組的援用二維數(shù)組的援用.可以對部分元素賦初值。例如: int a34=1,5,9;
16、 1 0 0 01 0 0 05 0 0 0 5 0 0 0 9 0 0 9 0 0 0 0也可以對各行中的某一元素賦初值,如int a34=1,0,6,0,0,11; 1 0 0 01 0 0 00 6 0 00 6 0 00 0 0 0 0 0 11 11 1 0 0 01 0 0 05 6 0 0 5 6 0 0 0 0 0 0 0 00 0也可以只對某幾行元素賦初值。如:int a34=1,5,6; .假設(shè)對全部元素都賦初值,那么定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省。例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;它等價于:int a4=
17、1,2,3,4,5,6,7,8,9,10,11,12;在定義時也可以只對部分元素賦初值而省略第一維的長度,但應(yīng)分行賦初值。例如:int a4=0,0,3,0,10;0 0 3 00 0 0 00 10 0 0例例: : 有一個有一個3 34 4的矩陣,要求編程序求出其中值最大的那的矩陣,要求編程序求出其中值最大的那個元素的值,以及其所在的行號和列號。個元素的值,以及其所在的行號和列號。 N-S流程圖表示算法流程圖表示算法 如下:如下:程序:程序: #include #include main()main() int i int i,j j,row=0row=0,colum=0colum=0,m
18、ax;max; int a34=1 int a34=1,2 2,3 3,44,99,8 8,7 7,66, -10 -10,1010,-5-5,2;2; max=a max=a0 00 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); /*程序終了*/ 6.3 字符數(shù)組定義方法與前面引見的類似。例如:char c10;字符數(shù)組的援用:c0,c2,c9對字符數(shù)組初始化,可逐個字符賦給數(shù)組中各元素。對字符數(shù)組初始化,可逐個字符賦給
19、數(shù)組中各元素。例如:例如:char char c10=I,a,m,h,a,p,c10=I,a,m,h,a,p,p,y p,y 假設(shè)初值個數(shù)小于數(shù)組長度,那么只將這些字符賦給數(shù)組中前面那些元素,其他的元素自動定為空字符。char cchar c1010=c=c, ,pp,rr,oo,gg,rr,aa,m; m; 假設(shè)提供的初值個數(shù)與預(yù)定的數(shù)組長度一樣,在定義時可以省略數(shù)組長度,系統(tǒng)會自動根據(jù)初值個數(shù)確定數(shù)組長度。char cchar c=I, ,a,m, ,h,=I, ,a,m, ,h,a,p,p,y;a,p,p,y;數(shù)組數(shù)組c c的長度自動定為的長度自動定為1010。 例例6.6 6.6 輸出
20、一個字符串。輸出一個字符串。 程序如下:程序如下:#include #include main()main() char c char c1010=I, ,a,m, ,a, ,=I, ,a,m, ,a, , b b,oo,y;y; int i; int i; for(i=0;i10;i+) for(i=0;i1字符串字符串2 2,函數(shù)值為一正整數(shù)。,函數(shù)值為一正整數(shù)。(3) (3) 假設(shè)字符串假設(shè)字符串11str2) printf(yes);if(str1str2) printf(yes);而只能用而只能用if(strcmp(str1if(strcmp(str1,str2)0) printf(
21、yes);str2)0) printf(yes);6. strlen函數(shù)函數(shù) 其普通方式為:其普通方式為:strlen (字符數(shù)組字符數(shù)組) strlen是測試字符串長度的函數(shù)。函數(shù)的值為字是測試字符串長度的函數(shù)。函數(shù)的值為字符串中的實踐長度符串中的實踐長度(不包括不包括0在內(nèi)在內(nèi))。例如:例如:char str10=China; printf(%d,strlen(str);輸出結(jié)果不是輸出結(jié)果不是10,也不是,也不是6,而是,而是5。也可以直接。也可以直接測試字符串常量的長度,如測試字符串常量的長度,如strlen(China); 考試重點 1、 一維數(shù)組和多維數(shù)組的定義、初一維數(shù)組和多維數(shù)組的定義、初始化和援用。始化和援用。 2、 字符串與字符數(shù)組。字符串與字符數(shù)組。 分析:這部分主要討論了數(shù)組和字分析:這部分主要討論了數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025物業(yè)租賃合同補充協(xié)議
- 2025家庭全包裝修合同樣本
- 2025贈與合同范本模板
- 四川省南充市西充縣天寶初級中學(xué)2024-2025學(xué)年八年級下學(xué)期期中考試語文試卷(含答案)
- 電梯定期檢驗合同協(xié)議
- 瓷磚加固工程合同協(xié)議
- 電商居間協(xié)議合同協(xié)議
- 特殊鋼板采購合同協(xié)議
- 白酒代理經(jīng)銷合同協(xié)議
- 玻璃窗施工合同協(xié)議
- 社區(qū)衛(wèi)生服務(wù)中心醫(yī)院感染監(jiān)測統(tǒng)計表
- 卒中相關(guān)肺炎的指南解讀
- 信息安全評估表
- 六下統(tǒng)編版復(fù)習(xí)2形近字
- 硒知識科普手冊
- 《潔凈工程項目定額》(征求意見稿)
- 新版冀教版科學(xué)四年級下冊全冊教案(雙面打印)
- 政府采購業(yè)務(wù)知識培訓(xùn)課件(PPT33張)
- 大體積混凝土施工質(zhì)量控制論文
- 客戶退貨申請單
- 生活垃圾綜合處理廠焚燒發(fā)電施工組織設(shè)計(201頁)
評論
0/150
提交評論