已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第七章 數(shù)組,7.1 一維數(shù)組的定義和引用 7.2 二維和多維數(shù)組的定義和引用 7.3 字符串和字符數(shù)組 7.4 程序舉例(排序),把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。 一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。 數(shù)組有數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。,7.1 一維數(shù)組的定義和使用,7.1.1 一維數(shù)組的定義方式 類型說明符 數(shù)組名常量表達(dá)式;,任一種基 本數(shù)據(jù)類 型或構(gòu)造 數(shù)據(jù)類型,用戶定義 的數(shù)組標(biāo) 識符,表示數(shù)據(jù) 元素的個(gè) 數(shù),也稱 為數(shù)組的 長度,例如:,int a10; float b10,c20; char ch20;,注意:,數(shù)組元素與變量一樣地使用(數(shù)組不能與 變量一樣地使用)。 數(shù)組元素與變量主要區(qū)別: 1它們的名字形式不同 2同一數(shù)組中各元素必須同類型 3. 數(shù)組名不能與其它變量名相同。 例如:main() int a ; float a10 ; ,變量重名,4方括號中常量表達(dá)式表示數(shù)組元素的個(gè)數(shù),但是其下標(biāo)從0開始計(jì)算。因此5個(gè)元素分別為: a0,a1,a2,a3,a4 5定義時(shí)不能在方括號中用變量來表示元素的個(gè)數(shù),但是可以是符號常數(shù)或常量表達(dá)式。 6允許在同一個(gè)類型說明中,說明多個(gè)數(shù)組和多個(gè)變量。例如: int a,b,c,d,k110,k220;,例如: #define FD 5 main() int a3+2,b7+FD; main() int n=5; int an; ,定義時(shí)不能用, 但引用時(shí)可以,7.1.2 一維數(shù)組元素的引用,數(shù)組元素是組成數(shù)組的基本單元,也是一種變量, 其標(biāo)識方法為數(shù)組名后跟一個(gè)下標(biāo),表示元素在數(shù)組中的順序號。 數(shù)組元素的一般形式為: 數(shù)組名下標(biāo) 其中下標(biāo)只能為整型常量或整型表達(dá)式。如為小數(shù)時(shí),C編譯將自動(dòng)取整。 例如:a5 ai+j ai+ 都是合法的數(shù)組元素。,定義時(shí)不能用, 引用時(shí)可以,數(shù)組元素通常也稱為下標(biāo)變量。必須先定義數(shù)組,才能使用下標(biāo)變量。在語言中只能逐個(gè)地使用下標(biāo)變量,而不能一次引用整個(gè)數(shù)組。 例如: 輸出有10個(gè)元素的數(shù)組必須使用循環(huán)語句逐個(gè)輸出各下標(biāo)變量: for(i=0; i10; i+) printf(“%d“,ai); 而不能用一個(gè)語句輸出整個(gè)數(shù)組。 下面的寫法是錯(cuò)誤的: printf(“%d“,a);,例7.1,void main() int i,a10; for(i=0;i=0;i-) printf(“%d “,ai); ,運(yùn)行結(jié)果:9 8 7 6 5 4 3 2 1 0,空 格,逐一 賦值,逐一 輸出,例7.2,void main() int i,a10; for(i=0;i=0;i-) printf(“%d“,ai); ,運(yùn)行結(jié)果:9876543210,例7.3,void main() int i,a10; for(i=0;i10;) ai+=2*i+1; for(i=0;i=9;i+) printf(“%d “,ai); printf(“n%d %dn“,a5.2,a5.8); 運(yùn)行結(jié)果:1 3 5 7 9 11 13 15 17 19 11 11,7.1.3 一維數(shù)組的初始化,給數(shù)組賦值的方法除了用賦值語句對數(shù)組元素逐個(gè)賦值外,還可采用初始化賦值和動(dòng)態(tài)賦值的方法。 初始化賦值的一般形式為: 類型說明符 數(shù)組名常量表達(dá)式=值,值值; 其中在 中的各數(shù)據(jù)值即為各元素的初值,各值之間用逗號間隔。 例如: int a10= 0,1,2,3,4,5,6,7,8,9 ; 相當(dāng)于,a0=0;a1=1.a9=9;,對數(shù)組的初始化賦值還有以下幾點(diǎn)規(guī)定:,1)可以只給部分元素賦初值。 當(dāng) 中值的個(gè)數(shù)少于元素個(gè)數(shù)時(shí),只給前面部分元素賦值。 例如: int a10=0,1,2,3,4; 表示只給a0a45個(gè)元素賦值,而后5個(gè)元素自動(dòng)賦0值。 2)只能給元素逐個(gè)賦值,不能給數(shù)組整體賦值。 例如給十個(gè)元素全部賦1值,只能寫為: int a10=1,1,1,1,1,1,1,1,1,1; 而不能寫為:int a10=1;,3)如給全部元素賦值,則在數(shù)組說明中,可以不給出數(shù)組元素的個(gè)數(shù)。 例如: int a5=1,2,3,4,5; 可寫為: int a=1,2,3,4,5;,例7.4,void main() int i,max,a10; printf(“input 10 numbers:n“); for(i=0;imax) max=ai; printf(“maxmum=%dn“,max);,定義一個(gè)10個(gè)元素的整型數(shù)組,逐一輸入十個(gè) 數(shù)組元素的值,逐一比 較,得出 最大值,輸入:1 4 5 2 31 4 6 7 3 0,輸出: maxmum=31,例7.5,void main() int i,j,p,q,s,a10; printf(“n input 10 numbers:n“); for(i=0;i10;i+)scanf(“%d“, ,逐一輸入十個(gè) 數(shù)組元素的值,做十次循環(huán),輸入:1 4 5 2 9 8 6 7 3 0,輸出:9 8 7 6 5 4 3 2 1 0,從一維數(shù)組可以延伸到二維甚至多位數(shù)組 數(shù)組a: a0 a1 a2 a3 a29 a30 數(shù)組c: c00 c01 c02 c03 c04 c10 c11 c12 c13 c14 c20 c21 c22 c23 c24 數(shù)組x: x000 x001 x002 x010 x011 x012 x100 x101 x102 x110 x111 x112 x200 x201 x202 x210 x211 x212,7.2 二維和多維數(shù)組的定義和使用,7.2.1 數(shù)組元素名一般形式 數(shù)組名表達(dá)式1表達(dá)式2表達(dá)式3表達(dá)式n 例1: a3 bij c2u*4+1.5k 例2: 若i=2、j=3.7 則 bij 、 bj-i+13.256 與 b23 表示同一個(gè)數(shù)組元素,若此某一表達(dá)式為實(shí)型,則只把該表達(dá)式值的整數(shù)部分作為相應(yīng)下標(biāo); 所有數(shù)組名部分相同、維數(shù)相同、相應(yīng)下標(biāo)相同的數(shù)組元素名表示同一個(gè)數(shù)組元素。,7.2.2 數(shù)組的定義 把下面形式的數(shù)組說明符寫在定義部分 數(shù)組名整型常量表達(dá)式1整型常量表達(dá)式2 整型常量表達(dá)式n 例3 : #define N 10 void main( ) int a ,b=2 , f30,k; char c1 ,c2 ,a22*N+1, wk ; 7.2.3 引用時(shí)注意:只引用數(shù)組元素、不引 用數(shù)組(字符型數(shù)組例外),變量下標(biāo)不行,7.2.4 數(shù)組的初始化(在定義部分使數(shù)組中部分或全部元素得到值) 例4 int k , a3=5,7,2 ,l ; float v5=7.1, 2.5, f ,q=36.8 ; char c =a , ,p ,e ,n ;-字符數(shù)組 char c = a , ,p ,e ,n ,0 ; char c = ”a pen” ; int a32=1,2,3,4,5; int a32= 1,2,3,4,5; char c 2=a ,b ,c ,d,系統(tǒng)自動(dòng)補(bǔ)上,?,多維數(shù)組可按行分段賦值;也可按行連續(xù)賦 值。 例如對數(shù)組a53,以下賦值結(jié)果等價(jià): 1)按行分段賦值可寫為: int a53= 80,75,92,61,65,71, 59,63,70,85,87,90,76,77,85; 2)按行連續(xù)賦值可寫為: int a53= 80,75,92,61,65,71,59,63, 70,85,87,90,76,77,85;,7.2.5 數(shù)組中各元素在內(nèi)存中的排列順序 按行排列 數(shù)組c: c00 c01 c02 c03 c04 c10 c11 c12 c13 c14 c20 c21 c22 c23 c24 數(shù)組x: x000 x001 x002 x010 x011 x012 x100 x101 x102 x110 x111 x112 x200 x201 x202 x210 x211 x212,1)可以只對部分元素賦初值,未賦初值的元素自動(dòng)取0值。例如: int a33=1,2,3; 賦值后各元素的值為: int a 33=0,1,0,0,2,3; 賦值后的元素值為:,2)如對全部元素賦初值,則第一維的長度可以不給出。 例如: int a33=1,2,3,4,5,6,7,8,9; 可以寫為: int a3=1,2,3,4,5,6,7,8,9;,例7.6,void main( ) int k=2, a0=10, a1=11,a2=12,ak=8; int a3=20,21,22 ; ak=18; for ( k=0;k=2;k+) printf( ”%d,%dn”,ak,ak ); ,a0=20,a1=21,a2=22,a2=18,運(yùn)行結(jié)果:,8,20,8,21,8,18,變量,非數(shù)組元素,例7.7,void main( ) int a6,k ; float t ; for (k=0;k=5;k+) ak=5*k+1 ; for (k=0;k=5;k+) t=0.7*k; printf( ”%d,”,at); ,輸出:1,1,6,11,11,16,例7.8 寫出下面程序的運(yùn)行結(jié)果并比較它們的區(qū)別 void main( ) int a44= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,j,k; for(j=0;j=3;j+) for(k=0;k=3;k+) printf(”%3d”,ajk); printf(”n”) ; ,1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,輸出:,j=3,k=0,循環(huán)外換行,做一次,void main( ) int a44= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,j,k; for(j=0;j=3;j+) for(k=0;k=3;k+) printf(”%3d”,akj); printf(”n”) ; ,k=3,j=0,1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16,輸出:,void main( ) int a44= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,j,k; for(j=0;j=3;j+) for(k=0;k=3;k+) printf(”%3d”,ajk); printf(”n”) ; 1 2 3 ,第二層循環(huán)內(nèi)換行, 輸出每個(gè)數(shù)就做一次,void main( ) int a44= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,j,k; for(j=0;j=3;j+) for(k=0;k=3;k+) printf(”%3d”,ajk); printf(”n”) ; 1 2 3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年候鳥式養(yǎng)老旅游項(xiàng)目投資計(jì)劃書
- 2026年養(yǎng)老服務(wù) 智慧健康監(jiān)測項(xiàng)目營銷方案
- 2026年秒送旗艦店項(xiàng)目投資計(jì)劃書
- 2026年固態(tài)電池關(guān)鍵裝備項(xiàng)目營銷方案
- 2026年合成氨甲醇用氫項(xiàng)目投資計(jì)劃書
- 武漢標(biāo)蔡家灣站區(qū)間隧道防水施工方案模板
- 2026貴州六盤水市六枝特區(qū)人力資源和社會(huì)保障局招聘城鎮(zhèn)公益性崗位2人備考題庫(含答案詳解)
- 2026江西吉安市欣榮文化影視有限公司招聘勞務(wù)派遣人員4人備考題庫參考答案詳解
- 2026福建廈門市集美區(qū)海怡實(shí)驗(yàn)幼兒園招聘2人備考題庫帶答案詳解(滿分必刷)
- 2026湖南湘潭市湘潭縣選調(diào)事業(yè)單位人員13人備考題庫含答案詳解(綜合卷)
- 華為手機(jī)品牌營銷策略研究畢業(yè)論文
- 2025年高等傳熱學(xué)試題及答案
- 2025年排版設(shè)計(jì)考試題庫及答案
- 2024 四川省城鎮(zhèn)管道燃?xì)獍踩[患分類和分級標(biāo)準(zhǔn)
- 2025屆新疆烏魯木齊市高三下學(xué)期三模英語試題(解析版)
- JJF 1183-2025 溫度變送器校準(zhǔn)規(guī)范
- 個(gè)人人身保險(xiǎn)投保單
- 成本與管理會(huì)計(jì)學(xué) 課件 第7、8章 短期成本與經(jīng)營決策、存貨成本與存貨管理
- YY/T 0313-2014醫(yī)用高分子產(chǎn)品包裝和制造商提供信息的要求
- 數(shù)據(jù)處理方法簡述講解課件
- GB∕T32400-2015信息技術(shù)云計(jì)算概覽與詞匯
評論
0/150
提交評論