c語言程序設(shè)計第06章利用數(shù)組處理批量數(shù)據(jù)課件_第1頁
c語言程序設(shè)計第06章利用數(shù)組處理批量數(shù)據(jù)課件_第2頁
c語言程序設(shè)計第06章利用數(shù)組處理批量數(shù)據(jù)課件_第3頁
c語言程序設(shè)計第06章利用數(shù)組處理批量數(shù)據(jù)課件_第4頁
c語言程序設(shè)計第06章利用數(shù)組處理批量數(shù)據(jù)課件_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 第第6章章 利用數(shù)組處理批量數(shù)據(jù)利用數(shù)組處理批量數(shù)據(jù) 6.1 為什么要用數(shù)組為什么要用數(shù)組 6.2 定義和引用一維數(shù)組定義和引用一維數(shù)組 6.3 二維數(shù)組的定義和引用二維數(shù)組的定義和引用 6.4 字符數(shù)組字符數(shù)組 6.5 提高部分提高部分 Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.1 為什么要用數(shù)組為什么要用數(shù)組 1 為什么要用數(shù)組?為什么要用數(shù)組? 利用數(shù)組可以有效的處理大批量的具有同一屬性利用數(shù)組可以有效的處理大批量的具有同一屬性 的數(shù)據(jù),大大提高了工作效率,十分方便。的數(shù)據(jù),大大提高了工作效率,十分方便。

2、什么是數(shù)組?什么是數(shù)組? 數(shù)組是一批有關(guān)聯(lián)的數(shù)據(jù)的有序集合,用一個統(tǒng)數(shù)組是一批有關(guān)聯(lián)的數(shù)據(jù)的有序集合,用一個統(tǒng) 一的一的數(shù)組名數(shù)組名表示,這樣就把這批數(shù)據(jù)組織成一個整表示,這樣就把這批數(shù)據(jù)組織成一個整 體;其中每個數(shù)據(jù)稱為一個元素,每個元素都屬于體;其中每個數(shù)據(jù)稱為一個元素,每個元素都屬于 同一個數(shù)據(jù)類型,用同一個數(shù)據(jù)類型,用下標下標來確定數(shù)組中某個具體的來確定數(shù)組中某個具體的 元素。元素。 Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.2 定義和引用一維數(shù)組定義和引用一維數(shù)組 一維數(shù)組是具有相同類型的一組數(shù)據(jù)的序列,用一個下標一維數(shù)組是具有相同類型的一組數(shù)據(jù)的序列,用一個下

3、標 就可以確定數(shù)組中的某個元素。就可以確定數(shù)組中的某個元素。 6.2.1 定義一維數(shù)組定義一維數(shù)組 需要給出數(shù)據(jù)的類型、數(shù)組名、元素的個數(shù)需要給出數(shù)據(jù)的類型、數(shù)組名、元素的個數(shù)(數(shù)組長度數(shù)組長度)。 定義一維數(shù)組的一般式:定義一維數(shù)組的一般式: 類型符類型符 數(shù)組名數(shù)組名 常量表達式常量表達式 ; 如:如:int a5; 表示定義了一個整型數(shù)組,數(shù)組名為表示定義了一個整型數(shù)組,數(shù)組名為a,包含,包含5個元素:個元素: a0、a1、a2、a3、a4 (不包括(不包括a5 ) 注意注意: (1) 數(shù)組名也是變量名,和變量名取名規(guī)則一樣。數(shù)組名也是變量名,和變量名取名規(guī)則一樣。 (2) 數(shù)組元素的下

4、標是從數(shù)組元素的下標是從0開始。開始。 (3) 數(shù)組的長度在定義時必須是常量(符號常量)。數(shù)組的長度在定義時必須是常量(符號常量)。 Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.2.2 引用一維數(shù)組的元素引用一維數(shù)組的元素 對已經(jīng)定義的一維數(shù)組,只能逐個引用數(shù)組元素,對已經(jīng)定義的一維數(shù)組,只能逐個引用數(shù)組元素, 不能一次引用整個數(shù)組中的全部元素。不能一次引用整個數(shù)組中的全部元素。 如:如:a3=10; t=a3+6; 引用數(shù)組元素的一般式為:引用數(shù)組元素的一般式為:數(shù)組名數(shù)組名 下標表達式下標表達式 注意:注意: 1 下標表達式應(yīng)為整型常量或整型表達式。下標表達式應(yīng)為整型常

5、量或整型表達式。 2 定義數(shù)組時的定義數(shù)組時的數(shù)組名數(shù)組名 常量表達式常量表達式 和引用數(shù)和引用數(shù) 組元素的組元素的數(shù)組名數(shù)組名 下標表達式下標表達式 雖然在形式上相似,雖然在形式上相似, 但含義和用法上是不同的。如:但含義和用法上是不同的。如: int a10; /*定義數(shù)組長度為定義數(shù)組長度為10*/ a8=4; t=a8+6; /*引用數(shù)組元素引用數(shù)組元素a8*/ 思考:思考: a10=4; 可以嗎?可以嗎? Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 例例6.1 給長度為給長度為10的整型數(shù)組賦值的整型數(shù)組賦值1 10,按逆序輸出,按逆序輸出。 編程序:編程序: #in

6、clude void main() int a10,i,; for(i=0;i=0;i-) /* 逆序逆序*/ printf(“%d”, ai); /*輸出輸出10個元素值個元素值*/ printf(“n”); 思考:從鍵盤給數(shù)組元素賦值,然后輸出?思考:從鍵盤給數(shù)組元素賦值,然后輸出? Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.2.3 一維數(shù)組的初始化一維數(shù)組的初始化 在定義一維數(shù)組的同時賦予初值,稱為數(shù)組的初始化。在定義一維數(shù)組的同時賦予初值,稱為數(shù)組的初始化。 如:如:int a5=1,2,3,4,5; 注意:注意: 1 在定義數(shù)組時可以對全部元素賦初值(如上)。在

7、定義數(shù)組時可以對全部元素賦初值(如上)。 2 可以對部分元素賦初值:可以對部分元素賦初值: 如:如:int a10=1,2,3,4,5; 前前5個元素個元素a0 a4初始化初始化15,后,后5個值自動為個值自動為0。 3 當對全部元素賦初值時,數(shù)組長度可以省略:當對全部元素賦初值時,數(shù)組長度可以省略: 如:如:int a =1,2,3,4,5; 系統(tǒng)會據(jù)此自動地定義數(shù)組長度為系統(tǒng)會據(jù)此自動地定義數(shù)組長度為5。 思考:有幾種方法可以給數(shù)組的各個元素賦值?思考:有幾種方法可以給數(shù)組的各個元素賦值? Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.2.3 一維數(shù)組程序舉例一維數(shù)組程序

8、舉例 例例6.2 用數(shù)組求用數(shù)組求Fibonacci數(shù)列的前數(shù)列的前20項并輸出。項并輸出。 編程序:編程序: #include void main() int i,f20=1,1; /*初始化初始化f0、f1*/ for(i=2;i20;i+) fi=fi-1+fi-2; /*求求f2 f19*/ for(i=0;i20;i+) printf(“%6d”, fi); /*輸出輸出20個元素值個元素值*/ printf(“n”); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 例例6.3 從鍵盤輸入從鍵盤輸入10個整數(shù),按從大到小輸出。個整數(shù),按從大到小輸出。 #include

9、void main() int i,j,t,a20; for(i=0;i10;i+) scanf(“%d”, /*鍵盤輸入鍵盤輸入10個整數(shù)個整數(shù)*/ for(i=0;i9;i+) for(j=0;j9-i;j+) if (ajaj+1) t=aj;aj=aj+1;aj+1=t; for(i=0;i10;i+) printf(“%4d”, ai); /*輸出輸出10個元素值個元素值*/ printf(“n”); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.3 二維數(shù)組的定義和引用二維數(shù)組的定義和引用 6.3.1 定義二維數(shù)組定義二維數(shù)組 一般形式為:類型名一般形式為:類型名

10、 數(shù)組名數(shù)組名常量表達式常量表達式 常量表達式常量表達式 如:如:int a34 , b510; 定義定義a為為3行行4列的二維數(shù)組;列的二維數(shù)組; b為為5行行10列的二維數(shù)組。列的二維數(shù)組。 注意:二維數(shù)組中元素排列的順序是按行進行的,即在內(nèi)注意:二維數(shù)組中元素排列的順序是按行進行的,即在內(nèi) 存中是按行連續(xù)存放的。存中是按行連續(xù)存放的。 6.3.2 引用二維數(shù)組的元素引用二維數(shù)組的元素 引用形式為:數(shù)組名引用形式為:數(shù)組名下標表達式下標表達式下標表達式下標表達式 如:如:int a34 ,b; a23=12;b=a23; 注意:二維數(shù)組注意:二維數(shù)組a的行下標范圍為的行下標范圍為02,列下

11、標為,列下標為03。 思考:思考:a34=15; 正確嗎正確嗎? Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.3.3 二維數(shù)組的初始化二維數(shù)組的初始化 (1) 分行給二維數(shù)組初始化。分行給二維數(shù)組初始化。 如:如:int a34=1,2,3,4,5,6,7,8,9,10,11,12; (2) 按元素排列順序給二維數(shù)組初始化。按元素排列順序給二維數(shù)組初始化。 如:如:int a34=1,2,3,4,5,6,7,8,9,10,11,12; (3) 可以給部分元素初始化。可以給部分元素初始化。 如:如:int a34=1,2,3; int b44=1,0,2,0,0,3,0,0,

12、0,4; int c34=1,2,3; int d34=1, ,2,3; 除了已經(jīng)賦值的元素外,其余元素值均為除了已經(jīng)賦值的元素外,其余元素值均為0。 (4) 當給數(shù)組全部元素初始化時,第一維的長度可省。當給數(shù)組全部元素初始化時,第一維的長度可省。 如:如:int a 4=1,2,3,4,5,6,7,8,9,10,11,12; 也可以:也可以: int d 4=1, ,2,3; Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.3.4 二維數(shù)組程序舉例二維數(shù)組程序舉例 例例6.4 將二維數(shù)組將二維數(shù)組a轉(zhuǎn)置后存放到轉(zhuǎn)置后存放到b數(shù)組中并輸出。數(shù)組中并輸出。 #include vo

13、id main() int i,j,b32,a23=1,2,3,4,5,6; for(i=0;i2;i+) for(j=0;j3;j+) bji=aij; for(i=0;i3;i+) for(j=0;j2;j+) printf(“%4d”, bij); /*輸出輸出b數(shù)組數(shù)組*/ printf(“n”); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 例例6.5 假設(shè)某班有假設(shè)某班有5個人,每人有個人,每人有3門成績,求平均成績門成績,求平均成績 最高的學生的成績和序號。最高的學生的成績和序號。 設(shè)計算法:設(shè)計算法:1 從鍵盤輸入從鍵盤輸入5個人個人 的的3門成績門成績 2 求

14、出平均成績放到數(shù)組的最后一列求出平均成績放到數(shù)組的最后一列 3 找出最高的平均分及序號找出最高的平均分及序號 4 輸出最高的平均分及序號輸出最高的平均分及序號 編程序:編程序: #include void main() int i,j,m,m_i,a54; for(i=0;i5;i+) for(j=0;j3;j+) scanf(“%d”, /*輸入輸入a數(shù)組數(shù)組*/ Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) for(i=0;i5;i+) ai3=0; for(j=0;j3;j+) ai3= ai3+aij; ai3= ai3/3; /*求出平均成績求出平均成績*/ m=a03

15、;m_i=0; /*將第成績設(shè)為最大將第成績設(shè)為最大*/ for(i=1;im) m=ai3;m_i=I; /*求出成績最大及下標求出成績最大及下標*/ printf(“NO=%dnSUM=%dn”,m_i+1,m); /*輸出最大成績及序號輸出最大成績及序號*/ Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.4 字符數(shù)組字符數(shù)組 6.4.1 定義字符數(shù)組及對其初始化定義字符數(shù)組及對其初始化 定義字符數(shù)組:定義字符數(shù)組:char c5; 初始化:初始化: char c5=h,a,p,p,y; char c =h,a,p,p,y; /*同上同上*/ char c10=h,a,p

16、,p,y; /*后面的字符均為后面的字符均為 0*/ char ch33= ,*, ,*,*,*, ,*, ; 6.4.2 引用字符數(shù)組引用字符數(shù)組 可以引用字符數(shù)組的某個元素,得到一個字符。可以引用字符數(shù)組的某個元素,得到一個字符。 例如:例如:for (i=0;i5;i+) ci=getchar(); /*scanf(“%c”,*/ for (i=0;is2:值為正整數(shù)值為正整數(shù) s1s2:值為負整數(shù)值為負整數(shù) strlen(s)求字符串長度求字符串長度 strlwr(s)將大寫字母轉(zhuǎn)成小寫將大寫字母轉(zhuǎn)成小寫 strupr(s)將小寫字母轉(zhuǎn)成大寫將小寫字母轉(zhuǎn)成大寫 Return c語言程序

17、設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.4.5 字符串數(shù)組應(yīng)用舉例字符串數(shù)組應(yīng)用舉例 例例6.7 鍵盤輸入鍵盤輸入3個字符串,求出最大者輸出。個字符串,求出最大者輸出。(P157) 編程序:編程序: #include #include void main() char s320,str=“ ”;int i; for(i=0;i0) strcpy(str,s1); printf(“l(fā)argest:%sn”,str); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 例例6.8 輸入一行字符,統(tǒng)計其中的單詞數(shù)。輸入一行字符,統(tǒng)計其中的單詞數(shù)。 注意:一行開頭的空格不統(tǒng)計,單詞間的多個空

18、格算一個。注意:一行開頭的空格不統(tǒng)計,單詞間的多個空格算一個。 設(shè)計算法:設(shè)計算法: 1 設(shè)變量設(shè)變量num,累計單詞數(shù),初值為,累計單詞數(shù),初值為0。若某個字符為非空。若某個字符為非空 格,而他前面的字符是空格,則格,而他前面的字符是空格,則num+; 2 設(shè)變量設(shè)變量word,用來表示前一個字符是否空格:,用來表示前一個字符是否空格:0代表是;代表是; 1代表不是。代表不是。 word的初值為的初值為0。 編程序:編程序: #include void main() char c; int num=0,word=0; while(c=getchar()!=n) if(c= ) word=0;

19、 else if(word=0) num+;word=1; printf(“words=%dn”,num); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 6.5 提高部分提高部分 1 定義二維數(shù)組:定義二維數(shù)組:int a34; 可以理解為:可以理解為: (1) 二維數(shù)組二維數(shù)組a可以看成是一個一維數(shù)組,包含可以看成是一個一維數(shù)組,包含3個元素:個元素: a0、a1、a2; (2) a0又是一個包含又是一個包含4個元素的一維數(shù)組,個元素的一維數(shù)組,a0為數(shù)組名為數(shù)組名 4個元素為:個元素為:a00、a01、a02、a03;同樣;同樣 a1、a2也是數(shù)組名,也包含也是數(shù)組名,也包

20、含4個元素。個元素。 2 對字符的二維數(shù)組,也是如此。對字符的二維數(shù)組,也是如此。 例如:例如: char s320; for(i=0;i3;i+) gets(si); /*s0為字符數(shù)組名為字符數(shù)組名*/ for(i=0;i3;i+) printf(“%sn”,si); 思考:請看例思考:請看例6.7? Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) 習習 題題 P167: 1、2、3、5、6、7、8、9、10 Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) P167-6 #include void main() int i,j,m; int a15=2,4,6,7,9,11,12,14,15,16,19,21,24,25,34; scanf(“%d”, /*鍵盤輸入要查找的整數(shù)鍵盤輸入要查找的整數(shù)*/ i=0;j=14; while (iam) i=m+1; else j=m-1; if(ij) printf(“no this number”); Return c語言程序設(shè)計第06章利用數(shù)組處 理批量數(shù)據(jù) P167-7 #include void main() int i,j; for(i=1;i=5;i

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論