版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章
數(shù)
組
本章要點(diǎn):
數(shù)組的概念
一維數(shù)組的定義、分配與初始化
二維數(shù)組的定義、分配與初始化
foreach語句的使用方法
與數(shù)組有關(guān)的算法例4.1循序漸進(jìn)學(xué)理論
4.1.1數(shù)組的概念
可以把數(shù)組看成是很多個(gè)變量的集合,這些變量具有相同的類型,它們?cè)趦?nèi)存中是連續(xù)存放的,這些變量均具有相同的名稱,并且可以通過下標(biāo)相互區(qū)分,每一個(gè)這樣的變量我們把它稱為數(shù)組元素。如假設(shè)存放300個(gè)學(xué)生數(shù)學(xué)成績(jī)的數(shù)組名為cj,要求出所有學(xué)生的數(shù)學(xué)的平均分,可使用下列語句:aver=0.0;for(i=0;i<300;i++)aver=aver+cj[i];aver=aver/300;
4.1.2一維數(shù)組的定義、分配與使用
所謂一維數(shù)組是指只有一個(gè)下標(biāo)的數(shù)組。數(shù)組在使用之前必須先定義(或稱聲明)和分配空間,然后才能使用數(shù)組元素。
1.一維數(shù)組的定義與分配[格式]:數(shù)據(jù)類型符
[]數(shù)組名
=new數(shù)據(jù)類型符[長(zhǎng)度];例如,有下列語句:int[]a=newint[10];//定義了一個(gè)數(shù)組a,該數(shù)組的數(shù)據(jù)類型是int,具有10個(gè)元素。其實(shí)數(shù)組的聲明與分配可以寫成兩條語句,上述語句也可以寫成:int[]a;//定義數(shù)組a=newint[10];//給數(shù)組分配存儲(chǔ)空間
與C/C++不同的是,C#中的數(shù)組的大小可以動(dòng)態(tài)確定,如有以下語句:
intAL=6;
inta[]=newint[AL];
這兩條語句定義了一個(gè)長(zhǎng)度為6的數(shù)組a。
2.定義數(shù)組時(shí)對(duì)數(shù)組元素進(jìn)行初始化
[格式]:數(shù)據(jù)類型符
[]數(shù)組名
={初值列表};
例如,有下列語句:int[]x={1,2,3,4};該語句定義了具有4個(gè)元素的數(shù)組x,并依次給x[0]、x[1]、x[2]和x[3]賦初值1、2、3和4。上述語句也可以寫成:int[]x=newint[]{1,2,3,4};3.?dāng)?shù)組元素的引用引用一維數(shù)組元素的一般形式如下:數(shù)組名[下標(biāo)]例如,有定義語句:int[]a=newint[5];那么a數(shù)組具有元素a[0]、a[1]、a[2]、a[3]和a[4]?!纠?-1】
找最大數(shù)游戲:有一批數(shù),請(qǐng)你快速地找出最大數(shù)及其位置。
【例4-2】
隨機(jī)產(chǎn)生十個(gè)兩位數(shù),然后利用選擇法把它們從小到大排序。4.1.3多維數(shù)組的定義、分配與使用
一維數(shù)組只有一個(gè)下標(biāo),多維數(shù)組具有多個(gè)下標(biāo),要引用多維數(shù)組的數(shù)組元素,需要使用多個(gè)下標(biāo)。多維數(shù)組中最常用的是二維數(shù)組。所謂二維數(shù)組,就是有兩個(gè)下標(biāo)的數(shù)組,適合處理如成績(jī)報(bào)告表、矩陣等具有行列結(jié)構(gòu)的數(shù)據(jù)。與C/C++不同的是,C#的二維數(shù)組的每一行的數(shù)組元素個(gè)數(shù)可以相等,也可以不相等。每行數(shù)組元素個(gè)數(shù)相等的二維數(shù)組稱為方形二維數(shù)組,各行數(shù)組元素個(gè)數(shù)不同的稱參差數(shù)組。
1.方形二維數(shù)組
(1)定義與分配[格式]:數(shù)據(jù)類型符
[,]數(shù)組名
=new數(shù)據(jù)類型符[長(zhǎng)度1,長(zhǎng)度2];例如,有下列語句:int[,]a=newint[3,4];//定義了一個(gè)數(shù)組a,該數(shù)組的數(shù)據(jù)類型是int,具有12個(gè)元素。其實(shí)上述數(shù)組的聲明與分配可以寫成兩條語句,上述語句也可以寫成:int[,]a;//定義數(shù)組a=newint[3,4];//給數(shù)組分配存儲(chǔ)空間二維數(shù)組的邏輯結(jié)構(gòu)(2)賦初值
[格式]:數(shù)據(jù)類型符
[,]數(shù)組名
={{初值列表1},{初值列表2},…,{初值列表n}};
例如,有下列語句:int[,]b={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
上述語句也可以寫成:int[,]a=newint[3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(3)元素引用引用方形二維數(shù)組元素的一般格式如下:數(shù)組名[下標(biāo)1,下標(biāo)2]2.參差數(shù)組
與C/C++不同的是,在C#中,二維數(shù)組的每一行的長(zhǎng)度可以是不同的,每一行的元素個(gè)數(shù)均可以由用戶指定。(1)分配行[格式]:數(shù)據(jù)類型符[][]數(shù)組名=new數(shù)據(jù)類型符[行數(shù)][];例如,有下列語句:
int[][]b=newint[3][];該語句定義了一個(gè)名為b的參差數(shù)組,數(shù)組的行數(shù)為3。(2)名行數(shù)組元素個(gè)數(shù)的分配
[格式]:數(shù)組名[i]=new數(shù)據(jù)類型符[長(zhǎng)度];例如,有以下語句:int[][]b=newint[3][];//定義具有3行的參差數(shù)組bb[0]=newint[2];//首行具有2個(gè)元素b[1]=newint[3]; //第二行具有3個(gè)元素b[2]=newint[4];//第三行具有4個(gè)元素(3)元素引用數(shù)組名[下標(biāo)1][下標(biāo)2]【例4-3】
某班有M名同學(xué),本學(xué)期開了N門課,期末考試后,要統(tǒng)計(jì)每個(gè)學(xué)生的平均分。請(qǐng)你編寫一個(gè)程序?qū)崿F(xiàn)該功能。要求:對(duì)于每個(gè)學(xué)生要輸入學(xué)號(hào)和N門課的成績(jī)?!纠?-4】編程輸出楊輝三角的前五行。楊輝三角的前五行值如下所示。11 11 2 11 3 3 11 4 6 4 14.1.4foreach
foreach語句是專用于對(duì)數(shù)組、集合等數(shù)據(jù)結(jié)構(gòu)中的每一個(gè)元素進(jìn)行循環(huán)操作的語句,通過它可以列舉數(shù)組、集合中的每一個(gè)元素,并且通過執(zhí)行循環(huán)體對(duì)每一個(gè)元素進(jìn)行需要的操作。
[格式]:foreach(數(shù)據(jù)類型符
變量名
in數(shù)組或集合)
循環(huán)體;
【例4-5】
使用foreach語句求二維數(shù)組的最小值。4.2典型實(shí)例練能力
4.2.1典型實(shí)例一:冒泡法排序
【實(shí)例題目】用冒泡法把隨機(jī)產(chǎn)生的10個(gè)整數(shù)從小到大排列。
4.2.1典型實(shí)例二:求二維數(shù)組各行的最大值及其下標(biāo)
【實(shí)例題目】
某次集會(huì)時(shí),學(xué)生排成了M行N列的方陣。請(qǐng)你編程把每個(gè)人的身高錄入到計(jì)算機(jī)中,然后找出每行的最高身高和該同學(xué)在該行中的位置。4.3上機(jī)練習(xí)重應(yīng)用
4.3.1上機(jī)練習(xí)一:二分法查找
【練習(xí)題目】
定義一個(gè)具有十個(gè)元素的一維數(shù)組,給它賦一個(gè)有序整數(shù)序列,然后利用折半查找算法查找一個(gè)輸入的數(shù)m在數(shù)組中的位置。若找到,輸出其下標(biāo),若找不到,則顯示沒有找到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年滬科版八年級(jí)生物上冊(cè)月考試卷
- 醫(yī)療級(jí)心理輔導(dǎo)學(xué)校與家庭的共同責(zé)任和挑戰(zhàn)
- 2024-2025學(xué)年江蘇省常州市新北區(qū)百草園小學(xué)三上數(shù)學(xué)期末綜合測(cè)試試題含解析
- 商業(yè)媒體行業(yè)設(shè)備及軟件采購策略探討
- 企業(yè)實(shí)驗(yàn)室設(shè)備管理的關(guān)鍵環(huán)節(jié)-維護(hù)與保養(yǎng)
- 互聯(lián)網(wǎng)金融時(shí)代的對(duì)公客戶安全保障
- 醫(yī)療垃圾的特殊處理與小區(qū)垃圾分類
- 從被動(dòng)接受到主動(dòng)參與殘疾人家庭康復(fù)的心理轉(zhuǎn)變
- 可持續(xù)材料在家具生命周期中的角色與影響
- 2025中國(guó)鐵塔青海分公司校園招聘16人高頻重點(diǎn)提升(共500題)附帶答案詳解
- “雙減”背景下小學(xué)數(shù)學(xué)“教、學(xué)、評(píng)”一體化的思考與實(shí)踐
- 2024人美版高中美術(shù)學(xué)業(yè)水平考試知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- 絞股藍(lán)的人工栽培與種質(zhì)資源保護(hù)
- 事業(yè)單位考試《綜合知識(shí)和能力測(cè)試》試卷
- 劇作策劃與管理智慧樹知到期末考試答案2024年
- 2024年河北交通投資集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 大學(xué)生勞動(dòng)教育-南京大學(xué)2中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 中國(guó)民族民間器樂 課件-2023-2024學(xué)年高中音樂湘教版(2019)必修音樂鑒賞
- 工廠籌建方案
- 長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院?jiǎn)握小墩Z文》考試參考題庫(含答案)
- UPVC管道安裝施工方法
評(píng)論
0/150
提交評(píng)論