版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6章 利用數(shù)組處理批量數(shù)據(jù),6,8,9章講數(shù)據(jù)注重MEM,相對(duì)于第三章的“單獨(dú)”的簡(jiǎn)單數(shù)據(jù)類型,更關(guān)注“組合”、更關(guān)注“數(shù)據(jù)塊”、 “內(nèi)存塊,目標(biāo)與知識(shí)點(diǎn),熟練掌握一維數(shù)組 一維數(shù)組的定義 一維數(shù)組的引用 一維數(shù)組的初始化 掌握二維數(shù)組 二維數(shù)組的定義 二維數(shù)組的引用 二維數(shù)組的初始化,了解多維數(shù)組 掌握字符數(shù)組 字符數(shù)組的定義 字符數(shù)組的引用 字符數(shù)組的初始化,復(fù)習(xí)回顧,第三章,有了常量,為什么還要變量? 給“量”一個(gè)“名份”,使我們可以方便地訪問(wèn)它、改寫它、控制它 第七章,有了三種邏輯控制結(jié)構(gòu),為什么還要函數(shù)? 給“邏輯控制”一個(gè)“名份”,使我們可以方便地訪問(wèn)它、組織它、利用它 今天我們
2、講:有了變量,為什么還要數(shù)組? 同樣的原因,給“一組變量”一個(gè)更細(xì)的“名份”,使我們可以更方便地訪問(wèn)它 馮諾依曼計(jì)算機(jī)是基于存儲(chǔ)結(jié)構(gòu)的,“名份”是和存儲(chǔ)地址相關(guān)的,地址是與“內(nèi)存”相關(guān)的概念。 內(nèi)存是程序員的“戰(zhàn)場(chǎng)” ,打仗要懂得地圖,為什么要用數(shù)組,cs_c,問(wèn)題: 1.如何用c語(yǔ)言把100個(gè)同學(xué)的成績(jī)存儲(chǔ)到計(jì)算機(jī)中? 2.如何從這100個(gè)學(xué)生的成績(jī)中查找最大值和最小值,int score1; int score2; int core100,計(jì)算機(jī)中的,我們看到的,按照以前的知識(shí),我們會(huì)這樣做,為什么要用數(shù)組,cs_c,此類問(wèn)題的特點(diǎn): 1.在一個(gè)表中,具有共同的表名; 2.他們的學(xué)號(hào)是相鄰
3、的,從1到100; 3.根據(jù)學(xué)號(hào)就能區(qū)別開(kāi)不同的成績(jī); 4.數(shù)據(jù)類型相同,看到同類性質(zhì)的數(shù)據(jù),同類性質(zhì)的操作,我們自然而然想到用循環(huán)來(lái)處理問(wèn)題 自然而然想到:如果有一種變量是和一個(gè)序號(hào)相關(guān)的 ,那將會(huì)產(chǎn)生很多很神奇的代碼 抽象!把分立的數(shù)據(jù)抽象成一個(gè)內(nèi)部有序的整體,cs_c,int score1; int score2; int core100,for (i=1;i=100;i+) 變量名,循環(huán)控制變量,一維數(shù)組的定義,一維數(shù)組定義的一般形式,類型符 數(shù)組名常量表達(dá)式,int cs_c100,cs_c99,cs_c2,cs_c1,cs_c0,數(shù)組元素的表示,69,82,85,93,計(jì)算機(jī)里的,
4、一維數(shù)組的引用,int cs_c100,for (i=1;i=100;i+) cs_ci,include void main() int i, cs_c100; printf(input scores: n); for(i = 0; i 100; i+) scanf(%d,問(wèn)題1:如何用c語(yǔ)言把100個(gè)同學(xué)的成績(jī)存儲(chǔ) 到計(jì)算機(jī)中,82,69,93,85,再把它們打印出來(lái),include void main() int cs_c100; printf(input scores: n); for(int i = 0; i 100; i+) scanf(%d,include int i, iMax,
5、 iMin, cs_c100; printf(input 100 scores: n); for(i = 0; i iMax) iMax = cs_ci; if(cs_ci iMin) iMin = cs_ci; printf(iMax=%dn iMin=%dn,iMax,iMin);,82,93,69,0,73,iMax=cs_c0,iMin=cs_c 0,82,82,82,82,處理兩者復(fù)雜些: 問(wèn)題2:如何從這100個(gè)學(xué)生成績(jī)中查找最大值和最小值,include int i, iMax, iMin, cs_c100; printf(input 100 scores: n); for(i
6、= 0; i iMax) iMax = cs_ci; if(cs_ci iMin) iMin = cs_ci; printf(iMax=%dn iMin=%dn,iMax,iMin);,82,93,69,0,73,iMax=82,iMin=82,cs_c0=82,iMax=82,iMin=82,82,82,0,include int i, iMax, iMin, cs_c100; printf(input 100 scores: n); for(i = 0; i iMax) iMax = cs_ci; if(cs_ci iMin) iMin = cs_ci; printf(Max=%dn Mi
7、n=%dn,iMax,iMin);,82,93,69,0,73,iMax=93,iMin=0,cs_c99=73,iMax=93,iMin=0,93,0,99,Input 100 scores: 82 93 69 0 73 max=93 min=0,100,作用,引入數(shù)組,加強(qiáng)了我們處理(內(nèi)存中的)數(shù)據(jù)的能力,“增加了計(jì)算機(jī)的功能”。 計(jì)算機(jī)是工具,我們學(xué)習(xí)計(jì)算機(jī)是為了“掌握它的功能” 這種數(shù)據(jù)相對(duì)我們以前講的數(shù)據(jù),區(qū)別在于它們是“數(shù)據(jù)塊”,而非簡(jiǎn)單、獨(dú)立的,在定義數(shù)組的同時(shí),給各數(shù)組元素賦值 int a10=0,1,2,3,4,5,6,7,8,9; int a10=0,1,2,3,4;相當(dāng)于
8、 int a10=0,1,2,3,4,0,0,0,0,0; int a10=0,0,0,0,0,0,0,0,0,0;相當(dāng)于 int a10=0; int a5=1,2,3,4,5;可寫為 int a =1,2,3,4,5,一維數(shù)組的初始化,易出現(xiàn)的問(wèn)題,1. 定義時(shí)易出現(xiàn)的問(wèn)題,類型符 數(shù)組名常量表達(dá)式,常量表達(dá)式:表示數(shù)組元素的個(gè)數(shù)。可以是整型常量或符號(hào)常量,不允許使用變量,例如: int a5; (下標(biāo)是整型常量) int a2*3 (下標(biāo)是整型表達(dá)式,define M 6 void main() int aM; .,下標(biāo)是符號(hào)常量,易出現(xiàn)的問(wèn)題,2. 引用時(shí)易出現(xiàn)的問(wèn)題,元素的表示: 數(shù)
9、組名 下標(biāo),數(shù)組要先定義后引用,定義數(shù)組時(shí),內(nèi)要使用常量表達(dá)式;不能使用變量;引用數(shù)組元素時(shí),內(nèi)的整型表達(dá)式可以是已經(jīng)賦值的整型變量,下標(biāo)都是從零開(kāi)始,都不能越界,int i=0,a10; a6; a10; ai,說(shuō)明,如果在被調(diào)用的函數(shù)(不包括主函數(shù))中定義數(shù)組,其長(zhǎng)度可以是變量或非常量表達(dá)式。如: void func (int n) int a2*n; /合法,n的值從實(shí)參傳來(lái) 如果指定數(shù)組為靜態(tài)(static)存儲(chǔ)方式,則不能用“可變長(zhǎng)數(shù)組”。如: static int a2*n; /不合法,a數(shù)組指定為static,易出現(xiàn)的問(wèn)題,3. 初始化時(shí),對(duì)所有元素賦初值,可以不指定數(shù)組的長(zhǎng)度,
10、例如: int class5=20,30,40,50,60; 省略數(shù)組長(zhǎng)度 int class =20,30,40,50,60,兩種方式賦值后,數(shù)組元素的值分別是: class0=20, class1=30, class2=40, class3=50, class4=60,對(duì)數(shù)組中部分元素賦初值,數(shù)組長(zhǎng)度不能省略,易出現(xiàn)的問(wèn)題,3. 初始化時(shí),對(duì)數(shù)組中部分元素賦初值,數(shù)組長(zhǎng)度不能省略。 對(duì)所有元素賦初值,可以不指定數(shù)組的長(zhǎng)度,例如:(未賦值的部分元素自動(dòng)設(shè)為0) int class5=20,30,40 ; 省略數(shù)組長(zhǎng)度 int class =20,30,40; /花括號(hào)中有3個(gè)數(shù),確定a數(shù)組有
11、3個(gè)元素,兩種方式賦值后,數(shù)組元素的值分別是: class0=20, class1=30, class2=40, class3=0, class4=0,下面程序的輸出結(jié)果是_。 main() int a=1,8,2,8,3,8,4,8,5,8; printf(%d,%dn,a4+3,a4+3); A) 6,6 B)8,8 C) 6,8 D)8,6,一些材料來(lái)自其他同行,在此感謝,B,int main() int p8=11,12,13,14,15,16,17,18, i=0,j=0; while(i+7) if(pi%2) j+=pi; printf(%dn,j); 程序運(yùn)行后的輸出結(jié)果是_。
12、 A)42 B)45 C)56 D)60,一些材料來(lái)自其他同行,在此感謝,B,程序舉例 1,一些材料來(lái)自其他同行,在此感謝,查找,排序,插入,程序舉例,查找某個(gè)數(shù)在一個(gè)一維數(shù)組(長(zhǎng)度為5)中的位置,題目,include int i, a5, iNumber; printf(請(qǐng)輸入要查找的數(shù)字:); scanf(%d,查找算法的實(shí)現(xiàn),4,3,67,56,90,56,a0 = iNumber,56,4,不相等,include int i, a5, iNumber; printf(請(qǐng)輸入要查找的數(shù)字:); scanf(%d,4,3,67,56,90,56,a1 = iNumber,56,3,不相等,
13、查找算法的實(shí)現(xiàn),include int i, a5, iNumber; printf(請(qǐng)輸入要查找的數(shù)字:); scanf(%d,4,3,67,56,90,56,a2 = iNumber,56,67,不相等,查找算法的實(shí)現(xiàn),include int i, a5, iNumber; printf(請(qǐng)輸入要查找的數(shù)字:); scanf(%d,4,3,67,56,90,56,a3 = iNumber,56,56,相等,i = 3) 5,在數(shù)組的第4個(gè)位置找到了數(shù)字56,查找算法的實(shí)現(xiàn),用冒泡法對(duì)任意輸入的5個(gè)數(shù)字按照從小到大的順序排序輸出,題目,排序算法的實(shí)現(xiàn),程序舉例 2,查找,排序,插入,程序舉例
14、,用冒泡法對(duì)任意輸入的5個(gè)數(shù)字按照從小到大的順序排序輸出,題目,include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,排序算法的實(shí)現(xiàn),i = 0,j = 0,78,23,a0,a1,a2,a3,a4,6,10,48,include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0;
15、 i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 0,j = 1,a0,a1,a2,a3,a4,78,23,6,10,48,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) print
16、f(%d ,ai); printf(n);,i = 0,j = 2,6,23,a0,a1,a2,a3,a4,78,10,48,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 0,j = 3,6,23,a0,a1,a2,a3,a4,78,48,10,排序算法的實(shí)現(xiàn),include int i, j
17、, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 1,j = 0,48,a0,a1,a2,a3,a4,23,6,10,78,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf
18、(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 1,j = 1,48,a0,a1,a2,a3,a4,23,6,10,78,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 1,j = 2,a0,a1,a2,a3,a4
19、,23,48,78,10,6,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 2,j = 0,10,6,a0,a1,a2,a3,a4,23,48,78,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1)
20、k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai); printf(n);,i = 2,j = 1,10,6,a0,a1,a2,a3,a4,23,48,78,排序算法的實(shí)現(xiàn),include int i, j, k, a5; printf(請(qǐng)任意輸入5個(gè)整數(shù):); for(i = 0; i aj+1) k = aj; aj = aj + 1; aj + 1 = k; printf(輸出排序后的整數(shù): ); for(i = 0; i 5; i+) printf(%d ,ai)
21、; printf(n);,i = 3,j = 0,10,6,a0,a1,a2,a3,a4,23,48,78,請(qǐng)任意輸入5個(gè)整數(shù):23 78 6 10 48 輸出排序后的整數(shù):6 10 23 48 78,排序算法的實(shí)現(xiàn),題目,程序舉例 3,查找,排序,插入,程序舉例,向一個(gè)數(shù)組按從小到大的順序輸入5個(gè)數(shù),再將另外一個(gè)數(shù)字插入到這個(gè)數(shù)組中,使得插入后的數(shù)組元素依然保持有序,題目,define N 5 int i, j, aN + 1, x; printf(請(qǐng)從小到大輸入5個(gè)整數(shù):); for(i = 0; i x) break; for(j = N; j i; j-) aj = aj - 1; a
22、i = x; printf(n 插入后的數(shù)組元素:n); for(i = 0; i N + 1; i+) printf(%d ,ai); printf(n,插入算法的實(shí)現(xiàn),五個(gè)整數(shù)存放到數(shù)組中,查找第一個(gè)大于要插入數(shù)的位置,將要插入的數(shù)保存到該位置,問(wèn)題: 1.如何用c語(yǔ)言把這個(gè)矩陣存儲(chǔ)到計(jì)算機(jī)中? 2.如何用c語(yǔ)言實(shí)現(xiàn)該矩陣的轉(zhuǎn)置,2 3 4 5 6,a,為什么要用二維數(shù)組,int a1; int a2; int a3; int a4; int a5; int a6,1 2 3 4 5 6,為什么要用二維數(shù)組,int a3=1,2,3,int b3=4,5,6,1 2 3 4 5 6,為什么
23、要用二維數(shù)組,特點(diǎn): 1.多個(gè)值,一個(gè)矩陣名; 2.行列按順序排列; 3.根據(jù)行列號(hào)就能區(qū)別開(kāi)不同的值; 4.數(shù)據(jù)類型相同,2 3 4 5 6,a,為什么要用二維數(shù)組,二維數(shù)組的定義,二維數(shù)組定義的一般形式,類型符 數(shù)組名常量表達(dá)式常量表達(dá)式,int a23,a01,a02,a10,a11,a12,a00,a01,a00,a02,a10,a11,a12,二維數(shù)組的引用,計(jì)算機(jī)中的,第1列 第2列 第3列,第1行 第2行,二維數(shù)組元素的存放順序:按行序優(yōu)先,二維數(shù)組元素的表示形式為: 數(shù)組名下標(biāo)下標(biāo),int a34=1,2,3,4,5,6,7,8,9,10,11,12; int a34=1,2,
24、3,4,5,6,7,8,9,10,11,12; int a34=1,5,9;等價(jià)于 int a34=1,0,0,0,5,0,0,0, 9,0,0,0; int a34=1,5,6;相當(dāng)于 int a34=1,5,6,0; int a34=1,2,3,4,5,6,7,8,9,10,11,12;等價(jià)于 int a 4=1,2,3,4,5,6,7,8,9,10,11,12; int a 4=0,0,3, ,0,10;合法,二維數(shù)組的初始化,include void main() int i, j, a23; printf(input array: n); for(i = 0; i 2; i+) fo
25、r(j = 0; j3; i+) scanf(%d,問(wèn)題1:如何用c語(yǔ)言把這個(gè)矩陣存儲(chǔ)到計(jì)算機(jī)中,1 2 3 4 5 6,main( ) int a23=1,2,3,4,5,6; int b32,i,j; printf(“array a:n”); for (i=0;i=1;i+) for(j=0;j=2,j+) printf(“%5d”,aij); bji=aij; printf(“n”); printf(“array b:n”); for (i=0;i=2;i+) for (j=0;j=1;j+) printf(“%5d”,bij); printf(“n”);,1 2 3 45 6,0 0,
26、1,問(wèn)題2:如何用c語(yǔ)言實(shí)現(xiàn)該矩陣的轉(zhuǎn)置,main( ) int a23=1,2,3,4,5,6; int b32,i,j; printf(“array a:n”); for (i=0;i=1;i+) for(j=0;j=2,j+) printf(“%5d”,aij); bji=aij; printf(“n”); printf(“array b:n”); for (i=0;i=2;i+) for (j=0;j=1;j+) printf(“%5d”,bij); printf(“n”);,1 2 3 45 6,0 0,1,問(wèn)題2:如何用c語(yǔ)言實(shí)現(xiàn)該矩陣的轉(zhuǎn)置,4,1 2 3 45 6,0 0,1,問(wèn)題2:如何用c語(yǔ)言實(shí)現(xiàn)該矩陣的轉(zhuǎn)置,4 2 5 3 6,array a: 1 2 3 4 5 6,array b: 1 4 2 5 3 6,易出現(xiàn)的問(wèn)題,1. 定義時(shí)易出現(xiàn)的問(wèn)題,類型符 數(shù)組名常量表達(dá)式常量表達(dá)式,常量表達(dá)式:表示數(shù)組元素的個(gè)數(shù),不允許使用變量,例如: int a56; int aij,易出現(xiàn)的問(wèn)題
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車批量訂購(gòu)合同4篇
- 2025年度體育賽事代理運(yùn)營(yíng)管理合同樣本4篇
- 2025年度生態(tài)停車場(chǎng)車位購(gòu)置協(xié)議4篇
- 生物活性營(yíng)養(yǎng)土項(xiàng)目可行性研究報(bào)告模板范文(立項(xiàng)備案項(xiàng)目申請(qǐng))
- 2025年新生入學(xué)教育法律協(xié)議書(綜合服務(wù))3篇
- 2025年度個(gè)人信用評(píng)分服務(wù)協(xié)議3篇
- 2025年度個(gè)人股權(quán)交易合同范本:股權(quán)轉(zhuǎn)讓流程與稅務(wù)籌劃4篇
- 2025年度企業(yè)項(xiàng)目合作協(xié)議范本4篇
- 2025年浙江澤興環(huán)保工程有限公司招聘筆試參考題庫(kù)含答案解析
- 二零二五年度林業(yè)生態(tài)恢復(fù)苗木采購(gòu)合同文本4篇
- 安徽省合肥市包河區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試題
- 《酸堿罐區(qū)設(shè)計(jì)規(guī)范》編制說(shuō)明
- PMC主管年終總結(jié)報(bào)告
- 售樓部保安管理培訓(xùn)
- 倉(cāng)儲(chǔ)培訓(xùn)課件模板
- 2025屆高考地理一輪復(fù)習(xí)第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級(jí)
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢(shì)與政策》課程標(biāo)準(zhǔn)
- 2023年海南省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 橋梁監(jiān)測(cè)監(jiān)控實(shí)施方案
評(píng)論
0/150
提交評(píng)論