




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1 第9講 數(shù)組(上)2 快速學(xué)習(xí)C+的途徑3 -C+語(yǔ)言數(shù)據(jù)類(lèi)型語(yǔ)言數(shù)據(jù)類(lèi)型老子曰:道生一、一生二、二生三、三生萬(wàn)物老子曰:道生一、一生二、二生三、三生萬(wàn)物基本類(lèi)型基本類(lèi)型構(gòu)造類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型指針類(lèi)型空類(lèi)型空類(lèi)型整型整型 字符型字符型實(shí)型實(shí)型 枚舉類(lèi)型枚舉類(lèi)型(浮點(diǎn)型浮點(diǎn)型)單精度型單精度型 雙精度型雙精度型數(shù)組類(lèi)型數(shù)組類(lèi)型 結(jié)構(gòu)體類(lèi)型結(jié)構(gòu)體類(lèi)型 共用體類(lèi)型共用體類(lèi)型數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型4 普遍規(guī)則l學(xué)習(xí)一種新的數(shù)據(jù)類(lèi)型時(shí),需要問(wèn)自己?jiǎn)栕约喝缦聠?wèn)題 如何定義 如何初始化 如何引用 為什么要引入該數(shù)據(jù)類(lèi)型為什么要引入該數(shù)據(jù)類(lèi)型?5 本講主要內(nèi)容l為什么要引入數(shù)組?l一維數(shù)組定義、初始化和引用l
2、二維數(shù)組定義、初始化和引用l程序的調(diào)試方法*參考教材的第5.1-5.3節(jié)6 9.1 為啥要引入數(shù)組為啥要引入數(shù)組p話說(shuō)上回犀利哥在家借酒澆愁,憤憤自語(yǔ)話說(shuō)上回犀利哥在家借酒澆愁,憤憤自語(yǔ):“:“哥喝哥喝的不是酒而是寂寞的不是酒而是寂寞”。然而。然而“神馬都是浮云神馬都是浮云”,悲,悲憤之后便是喜悅。天仙妹傷好出院,犀利哥歡天喜憤之后便是喜悅。天仙妹傷好出院,犀利哥歡天喜地。為了表示慶賀,決定從家里地。為了表示慶賀,決定從家里10001000只羊群中選一只羊群中選一只最肥的羊宴請(qǐng)?zhí)煜擅妹?。再然而只最肥的羊宴?qǐng)?zhí)煜擅妹谩T偃欢? ,犀利哥由喜變愁犀利哥由喜變愁: :如何記錄每只羊的重量呢如何記錄每
3、只羊的重量呢? ? 需要定義需要定義10001000個(gè)變量個(gè)變量(a1,a2.)(a1,a2.)嗎嗎? ? 如何找到最肥的羊呢?如何找到最肥的羊呢?p分析:分析:(1 1)如何表示相同類(lèi)型的序列數(shù)據(jù);)如何表示相同類(lèi)型的序列數(shù)據(jù);(2 2)如何實(shí)現(xiàn))如何實(shí)現(xiàn)10001000次比較操作?次比較操作?7 max = 0.0; 將記錄最重的羊的重量置0 for ( i=0; i1000; i=i+1 ) 提示輸入第i 只羊的重量; 鍵入第i 只羊的重量 sheepi; max sheepi 是 否 max = sheepi; k = i; 存重者,記錄第i 只。 輸出 max ( 最重的羊的重量 )
4、 輸出 k ( 最重的羊是第k 只 ) 實(shí)例:用鍵盤(pán)輸入實(shí)例:用鍵盤(pán)輸入1000只羊的重量,并找出最大的羊只羊的重量,并找出最大的羊生活小常識(shí)生活小常識(shí)如果你去食堂買(mǎi)如果你去食堂買(mǎi)4樣樣菜,是使用獨(dú)立菜,是使用獨(dú)立4只只碗,還是用一個(gè)有碗,還是用一個(gè)有4個(gè)坑位的盤(pán)子?個(gè)坑位的盤(pán)子?8 #include #include Int main()Int main()float sheep1000; float sheep1000; /數(shù)組定義數(shù)組定義, ,相當(dāng)于定義相當(dāng)于定義10001000個(gè)變量個(gè)變量 float max; float max;int i,k; int i,k; max=0.0;
5、max=0.0; for ( i=0; i1000; i=i+1 ) for ( i=0; i1000; i=i+1 ) printf(“printf(“請(qǐng)輸入羊的重量請(qǐng)輸入羊的重量sheep%d=”, i);sheep%d=”, i); scanf(“%f”, &(sheepi); scanf(“%f”, &(sheepi); /數(shù)組的使用數(shù)組的使用, ,元素單個(gè)使用元素單個(gè)使用if ( max if ( max sheepisheepi ) ) max = sheepi; max = sheepi; /數(shù)組的使用數(shù)組的使用 k=i;k=i; /數(shù)組的使用數(shù)組的使用print
6、f(“max=%fn”, max);printf(“max=%fn”, max);printf(“number=%dn”, k);printf(“number=%dn”, k);return 0return 0; p 提問(wèn):提問(wèn):如不用數(shù)組,程序如何寫(xiě)?獨(dú)立定義如不用數(shù)組,程序如何寫(xiě)?獨(dú)立定義1000個(gè)變量是個(gè)變量是否可以用循環(huán)結(jié)構(gòu)?否可以用循環(huán)結(jié)構(gòu)?9 9.1、數(shù)組的定義、數(shù)組的定義l數(shù)組的定義:數(shù)組的定義:類(lèi)型說(shuō)明符類(lèi)型說(shuō)明符數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式 l例:例:float sheep10; /float sheep10; /相當(dāng)于定義了相當(dāng)于定義了1010個(gè)變量;個(gè)變量; int
7、 a5; / int a5; /相當(dāng)定義了相當(dāng)定義了a0, a1, a2, a3, a4l說(shuō)明說(shuō)明 數(shù)組名的第一個(gè)字符應(yīng)為英文字母;數(shù)組名的第一個(gè)字符應(yīng)為英文字母; 用方括號(hào)將用方括號(hào)將常量表達(dá)式常量表達(dá)式括起;括起; 常量表達(dá)式定義了數(shù)組元素的個(gè)數(shù);常量表達(dá)式定義了數(shù)組元素的個(gè)數(shù); 定義形式的常量表達(dá)式中不允許包含變量定義形式的常量表達(dá)式中不允許包含變量;l例如例如 int n;int n; n = 5; n = 5;int an;int an;不合法!不合法! a 下標(biāo)下標(biāo) 0 1 2 3 4 10 9.1、數(shù)組的定義、數(shù)組的定義n數(shù)組的本質(zhì)特征數(shù)組的本質(zhì)特征300301302298299
8、11 9.2、數(shù)組的引用、數(shù)組的引用nC+C+語(yǔ)言規(guī)定,不能引用整個(gè)數(shù)組,只能逐個(gè)引用語(yǔ)言規(guī)定,不能引用整個(gè)數(shù)組,只能逐個(gè)引用元素,元素引用方式:元素,元素引用方式:數(shù)組名數(shù)組名 下標(biāo)下標(biāo) n在引用時(shí)表達(dá)式中可以包含變量在引用時(shí)表達(dá)式中可以包含變量n 例例 使數(shù)組元素使數(shù)組元素a0a0a9a9的值為的值為0 09 9,然后逆,然后逆序輸出序輸出int main()int i,a10; /數(shù)組的定義 for (i=0;i=0; i-) printf(%d ,ai);p 數(shù)組的奧秘之處就是可采數(shù)組的奧秘之處就是可采用循環(huán)變量通過(guò)下標(biāo)來(lái)引用循環(huán)變量通過(guò)下標(biāo)來(lái)引用數(shù)組元素用數(shù)組元素12 n初始化初始化
9、: :在定義時(shí)指定初始值,編譯器把初值賦給數(shù)組變量在定義時(shí)指定初始值,編譯器把初值賦給數(shù)組變量n賦值賦值: :在程序運(yùn)行時(shí),使用賦值語(yǔ)句把值賦給數(shù)組變量,如在程序運(yùn)行時(shí),使用賦值語(yǔ)句把值賦給數(shù)組變量,如a0 = 2a0 = 2 a 3 5 4 1 2 下標(biāo)下標(biāo) 0 1 2 3 4 13 9.3、數(shù)組的初始化、數(shù)組的初始化l一般初始化,例:一般初始化,例:int a10 = 0,1,2,3,4,5,6,7,8,9int a10 = 0,1,2,3,4,5,6,7,8,9; l部分元素初始化,例:部分元素初始化,例:int a10 = 0,1,2,3,4int a10 = 0,1,2,3,4;僅前
10、僅前5 5個(gè)元素賦初值,后面默認(rèn)為個(gè)元素賦初值,后面默認(rèn)為0 0l全部元素均初始化為全部元素均初始化為0 0int a10 = 0,0,0,0,0,0,0,0,0,0;int a10 = 0,0,0,0,0,0,0,0,0,0;注意:不給數(shù)組指定初始值時(shí),編譯器作如下處理:注意:不給數(shù)組指定初始值時(shí),編譯器作如下處理:(1 1)編譯器自動(dòng)把靜態(tài)數(shù)組的各元素初始化為)編譯器自動(dòng)把靜態(tài)數(shù)組的各元素初始化為0 0。(2 2)編譯器不為動(dòng)態(tài)數(shù)組自動(dòng)指定初始值。)編譯器不為動(dòng)態(tài)數(shù)組自動(dòng)指定初始值。 l如果全部元素均指定初值,定義中可省略元素個(gè)數(shù):如果全部元素均指定初值,定義中可省略元素個(gè)數(shù): int a
11、5 = 1,2,3,4,5; int a5 = 1,2,3,4,5;可以寫(xiě)為:可以寫(xiě)為:int a = 1,2,3,4,5; int a = 1,2,3,4,5; 14 9.3、數(shù)組的初始化、數(shù)組的初始化算法重點(diǎn):對(duì)比算法重點(diǎn):對(duì)比Fibonacci3種解法:遞推法、遞歸法和數(shù)組法種解法:遞推法、遞歸法和數(shù)組法15 2.4.5邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式(回顧)(回顧)16 應(yīng)用舉例l窮舉法17 應(yīng)用舉例注意:編譯鏈接成功不等于沒(méi)有語(yǔ)法錯(cuò)誤注意:編譯鏈接成功不等于沒(méi)有語(yǔ)法錯(cuò)誤18 火眼金睛查錯(cuò)誤19 應(yīng)用舉例20 附:程序的調(diào)試21 逐語(yǔ)句調(diào)試:F1122 逐語(yǔ)句調(diào)試:F112
12、3 逐語(yǔ)句調(diào)試:F1124 逐語(yǔ)句調(diào)試:F1125 逐語(yǔ)句調(diào)試:F1126 逐語(yǔ)句調(diào)試:F1127 9.4 二維數(shù)組提問(wèn):編寫(xiě)程序完成提問(wèn):編寫(xiě)程序完成a*b,怎么辦怎么辦?如何表示如何表示a 和和b?28 9.4 二維數(shù)組p定義形式: 類(lèi)型說(shuō)明符 數(shù)組名常量表達(dá)式常量表達(dá)式p例:例:int a23;int a23; a a為為2 23(23(2行行3 3列列) )的數(shù)組,共的數(shù)組,共6 6個(gè)個(gè)元素元素p注意:排列(存儲(chǔ))順序,先列注意:排列(存儲(chǔ))順序,先列后行后行p下標(biāo)變化,下標(biāo)變化,即二維數(shù)組中元素的即二維數(shù)組中元素的引用引用29 9.4 三維數(shù)組p三維數(shù)組:三維數(shù)組:float a23
13、4float a234在內(nèi)存中的存放順序在內(nèi)存中的存放順序:a000a001a002a003a010a011a012a013a020a021a022a023a100a101a102a103a110a111a112a113a120a121a122a12330 9.4 二維數(shù)組的初始化p分行賦值如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;p全部數(shù)據(jù)寫(xiě)在一個(gè)大括號(hào)內(nèi)如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;p部分元素賦值如:static int a34=1,5,9;僅對(duì)a00、a10、a20賦值,其余元素未賦值(對(duì)于靜態(tài)數(shù)組
14、,編譯器自動(dòng)為未賦值元素指定初值0。p如果對(duì)全部元素賦初值,則第一維的長(zhǎng)度可以不指定,但必須指定第二維的長(zhǎng)度如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;與下面定義等價(jià):static int a 4=1,2,3,4,5,6,7,8,9,10,11,12;31 9.4二維數(shù)組的二維數(shù)組的應(yīng)用舉例應(yīng)用舉例l 例例 將一個(gè)二維數(shù)組行和列交換,存到將一個(gè)二維數(shù)組行和列交換,存到另一個(gè)二維數(shù)組中。例如另一個(gè)二維數(shù)組中。例如32 9.4二維數(shù)組的二維數(shù)組的應(yīng)用舉例應(yīng)用舉例33 斷點(diǎn)調(diào)試:F534 斷點(diǎn)調(diào)試:F535 斷點(diǎn)調(diào)試:F536 9.4二維數(shù)組的二維數(shù)組的應(yīng)
15、用舉例應(yīng)用舉例l例有一個(gè)34的矩陣,要求編程序以求出其中值最大的那個(gè)元素的值及其所在的行號(hào)和列號(hào)。l算法:“打擂臺(tái)”,首先把第一個(gè)元素a00作為臨時(shí)最大值max,然后把臨時(shí)最大值max與每一個(gè)元素aij進(jìn)行比較,若aijmax,把a(bǔ)ij作為新的臨時(shí)最大值,并記錄下其下標(biāo)i和j。當(dāng)全部元素比較完后,max是整個(gè)矩陣全部元素的最大值37 9.4二維數(shù)組的二維數(shù)組的應(yīng)用舉例應(yīng)用舉例38 9.4二維數(shù)組的二維數(shù)組的應(yīng)用舉例應(yīng)用舉例39 本講重點(diǎn)l數(shù)組的內(nèi)涵:整體定義、連續(xù)存儲(chǔ)(地址表示)、逐個(gè)引用(循環(huán)語(yǔ)句)l數(shù)組的定義和引用格式l數(shù)組解題思路l逐過(guò)程和斷點(diǎn)調(diào)試的使用方法40 第8次實(shí)驗(yàn)練習(xí)l本次共本
16、次共2 2題。提交截止時(shí)間為第題。提交截止時(shí)間為第1111周末。周末。l第第1 1題:犀利哥故事之十一:題:犀利哥故事之十一:喜結(jié)良緣喜結(jié)良緣 話說(shuō)犀利哥對(duì)天仙妹妹的一片真情,終于打動(dòng)了天仙妹話說(shuō)犀利哥對(duì)天仙妹妹的一片真情,終于打動(dòng)了天仙妹妹及其父母。妹及其父母?!敖鹫\(chéng)所致,金石為開(kāi)金誠(chéng)所致,金石為開(kāi)”。父母同意不要。父母同意不要彩禮了,只求得有一個(gè)良辰吉日,將兩人的婚禮給辦了彩禮了,只求得有一個(gè)良辰吉日,將兩人的婚禮給辦了。犀利哥非常感動(dòng),決定從。犀利哥非常感動(dòng),決定從199199只羊中挑出最大只羊中挑出最大1010只,送只,送給岳父岳母。如何選拔這給岳父岳母。如何選拔這1010只最肥的羊,
17、請(qǐng)同學(xué)幫忙使只最肥的羊,請(qǐng)同學(xué)幫忙使用至少用至少2 2種不同算法編程。種不同算法編程。提示提示: :羊的重量可以采用隨機(jī)羊的重量可以采用隨機(jī)函數(shù)函數(shù)RAND()RAND()來(lái)產(chǎn)生來(lái)產(chǎn)生 另外:使用斷點(diǎn)調(diào)試,截獲保存另外:使用斷點(diǎn)調(diào)試,截獲保存“最大最大1010只羊只羊”數(shù)組的數(shù)組的調(diào)試窗口圖,并在作業(yè)中提交調(diào)試窗口圖,并在作業(yè)中提交41 網(wǎng)絡(luò)版的函數(shù)使用說(shuō)明網(wǎng)絡(luò)版的函數(shù)使用說(shuō)明百度百度查找查找42 聯(lián)機(jī)幫助版函數(shù)使用說(shuō)明聯(lián)機(jī)幫助版函數(shù)使用說(shuō)明幫助幫助索引索引查找查找43 第8次實(shí)驗(yàn)練習(xí)第第2題:利用高斯題:利用高斯(Gauss)消去法求解線性代數(shù)方程組(求解方法見(jiàn)消去法求解線性代數(shù)方程組(求解
18、方法見(jiàn)下頁(yè))。具體要求:編寫(xiě)程序來(lái)求解下列線性代數(shù)方程組,其中下頁(yè))。具體要求:編寫(xiě)程序來(lái)求解下列線性代數(shù)方程組,其中系數(shù)矩陣與常數(shù)向量利用初始化賦初值。要求輸出系數(shù)矩陣與常系數(shù)矩陣與常數(shù)向量利用初始化賦初值。要求輸出系數(shù)矩陣與常數(shù)向量。輸出形式為數(shù)向量。輸出形式為MAT A= 1.1161 0.1254 0.1397 0.1490 0.1582 1.1675 0.1768 0.1871 0.2368 0.2471 0.2568 1.2671 0.1968 0.2071 1.2168 0.2271MAT B= 1.5471 1.6471 1.8471 1.7471結(jié)果輸出形式為結(jié)果輸出形式為 x(1)=具體值具體值 x(2)=具體值具體值 x(3)=具體值具體值 x(4)=具體值具體值7471. 1x2271. 0 x2168. 1x2071. 0 x1968. 08471. 1x2671. 1x2568. 0 x2471. 0 x2368. 06471. 1x1871. 0 x1768. 0 x1675. 1x1582. 05471. 1x1490. 0 x1397. 0 x1254. 0 x1161. 143214321432
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安卓的面試題及答案
- 工程晉升面試題及答案
- 傳染病考試題及答案
- 公關(guān)商務(wù)面試題及答案
- 翻譯教材考試題及答案
- 地圖英文面試題及答案
- T/CAEPI 55-2023污染土壤原位熱傳導(dǎo)修復(fù)工藝設(shè)計(jì)指南
- 某自治縣工貿(mào)行業(yè)領(lǐng)域重大隱患督導(dǎo)檢查工作方案
- 收費(fèi)站應(yīng)聘班長(zhǎng)演講稿
- 人生規(guī)劃課件
- 基于“生活教育”理念下部編小學(xué)語(yǔ)文教材中“小練筆”教學(xué)策略研究 論文
- 高中生物必修一實(shí)驗(yàn)通知單
- 課件:第四章 社會(huì)工作項(xiàng)目的執(zhí)行(《社會(huì)工作項(xiàng)目策劃與評(píng)估》課程)
- 冷庫(kù)施工組織設(shè)計(jì)施工方案
- 咯血診斷與治療課件
- 醫(yī)學(xué)影像專(zhuān)業(yè)個(gè)人簡(jiǎn)歷
- 檢驗(yàn)科 醫(yī)院感染管理質(zhì)量督查評(píng)分表
- 獨(dú)立性檢驗(yàn) 公開(kāi)課比賽一等獎(jiǎng)-完整版獲獎(jiǎng)?wù)n件
- 網(wǎng)絡(luò)信息系統(tǒng)癱瘓演練PDCA改進(jìn)
- 高分子材料成型加工基礎(chǔ)添加劑及配方設(shè)計(jì)課件
- 水泥水化熱實(shí)驗(yàn)原始記錄
評(píng)論
0/150
提交評(píng)論