項(xiàng)目 4數(shù)組.ppt_第1頁
項(xiàng)目 4數(shù)組.ppt_第2頁
項(xiàng)目 4數(shù)組.ppt_第3頁
項(xiàng)目 4數(shù)組.ppt_第4頁
項(xiàng)目 4數(shù)組.ppt_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計 項(xiàng)目四 數(shù)組,項(xiàng)目目標(biāo),任務(wù)分解,任務(wù)一 項(xiàng)目要求,歌曲比賽評分統(tǒng)計規(guī)則如下:青年歌手參加歌曲比賽,有10個評委對她進(jìn)行評分,這個歌手的最后得分為去掉一個最高分和一個最低分,其余數(shù)據(jù)求平均值。,任務(wù)二 一維數(shù)組,1.什么時候要用到數(shù)組? 2.什么是數(shù)組?,在科學(xué)研究、工程技術(shù)及日常生活中,常常需要處理這樣的數(shù)據(jù),如 學(xué)生各個科目的成績 商業(yè)部門要記錄每個月份的銷售額 氣象部門要記錄每天的降雨量,數(shù)組是一種構(gòu)造類型,用于在程序中存放一組類型相同的、相關(guān)的數(shù)據(jù),以便用循環(huán)的方式對這些數(shù)據(jù)進(jìn)行處理。,例如: int a10; float score5; “數(shù)據(jù)類型”: 是數(shù)組元素的數(shù)

2、據(jù)類型。 “數(shù)組名”: 遵循C語言標(biāo)識符規(guī)則。 “常量表達(dá)式”:表示數(shù)組中有多少個元素,即數(shù)組的長度。它可以是整型常量、整型常量表達(dá)式或符號常量。,數(shù)據(jù)類型 數(shù)組名常量表達(dá)式;,3.一維數(shù)組的定義,分別定義數(shù)組(設(shè)數(shù)組名都是a),以保存下列數(shù)據(jù)系列: 系列一: 10 9 -3 100 25 系列二: 1.2 3.5 2.7 0.9 系列三: a b c ! d *,思考:,int a5;,float a4;,char a6;,以下數(shù)組定義是正確的: #define N 10 float score1N, score2N; int num10+N; char c26;,以下數(shù)組定義是不正確的:

3、int array(10); int n; float scoren; double ba. d; char str ;,定義時應(yīng)注意:,1、常量表達(dá)式用方括符括起來,不能用圓括符。 int x(5) ,2、常量表達(dá)式中不能包含變量。int n;int namen,3、數(shù)組名不能和其他變量名同名。int n;int n5,4、允許在同一個類型聲明中,聲明多個數(shù)組和多個變量。 int a,b,c,x10,y12; ,5、數(shù)組元素的下標(biāo),是元素相對于數(shù)組起始地址的偏移量,所以從0開始順序編號。 例如:x5代表數(shù)組中有5個元素,這5個元素是:x0, x1, x2, x3, x4,數(shù)組在內(nèi)存的存放,數(shù)

4、組下標(biāo)從0開始。 一維數(shù)組的數(shù)組元素在內(nèi)存里按順序存放。 數(shù)組名代表數(shù)組的首地址,即score的值與score0 的地址值相同。,int score5;有一個數(shù)組score,具有五個整型數(shù)據(jù),4 數(shù)組元素的引用,格式:,數(shù)組名下標(biāo)表達(dá)式,下標(biāo)表達(dá)式可以是任何非負(fù)整型數(shù)據(jù),取值范圍是0(元素個數(shù)-1)。,一個數(shù)組元素,實(shí)質(zhì)上就是一個變量,它具有和相同類型單個變量一樣的屬性,可以對它進(jìn)行賦值和參與各種運(yùn)算。,舉例 int a10=1,2,3,4,5,6,7; 引用數(shù)組a的第一個元素 引用數(shù)組a的最后一個元素 求數(shù)組a中第1、2個元素的和,保存在s中 比較數(shù)組第5、6個元素的大小,將其中較大的那一個

5、賦給max,a0,a9,s=a0+a1;,if(a4a5) max=a4; else max=a5;,說明: 下標(biāo)從0開始(下界為0),數(shù)組的最大下標(biāo)(上界)是數(shù)組長度減1。 例如: int a10; scanf (%d, /* 下標(biāo)越界 */,C編譯系統(tǒng)不做越界檢查,如果引用的數(shù)組元素 超出數(shù)組范圍會破壞其他變量的值。,一般形式: 數(shù)據(jù)類型 數(shù)組名常量表達(dá)式=初值表,5 一維數(shù)組的初始化,初始化說明: 1.在定義數(shù)組時對所有元素賦初值。例如: int a5=1,2,4,6,9; 等價于: int a5; a0=1; a1=2; a2=4; a3=6; a4=9;,2在定義數(shù)組時,對全部數(shù)組元

6、素賦初值 例如:int a5=0,1,2,3,4; 此時可以省略數(shù)組長度,例如:int a =0,1,2,3,4; 3在定義數(shù)組時,對部分?jǐn)?shù)組元素賦初值 例如:int a5=1,2,3;系統(tǒng)為其余元素賦 0 。 4當(dāng)初值的個數(shù)多于數(shù)組元素的個數(shù)時,編譯出錯 例如: int a5=0,1,2,3,4,5;,6 一維數(shù)組的簡單應(yīng)用 從鍵盤輸入10個評委的評分到數(shù)組score。 對10個評委的評分求總分。 順序輸出10個評委的評分。 逆序輸出10個評委的評分。 計算10個評分中的最高分。 對這10個評委的評分按從小到大的順序重新排列。,任務(wù)三 項(xiàng)目流程圖,任務(wù)四 項(xiàng)目實(shí)現(xiàn),查看源碼1,查看源碼2,任

7、務(wù)五 項(xiàng)目拓展之二維數(shù)組,引入: 前面我們只考慮了一個選手的得分情況,如果有50個選手來參加比賽,要求把50個選手的得分全部記錄下來,就需要用到二維數(shù)組了。,1.了解二維數(shù)組 前面介紹的數(shù)組只有一個下標(biāo),稱為一維數(shù)組。 在實(shí)際問題中有很多是二維的或多維的,多維數(shù)組元素有多個下標(biāo),以標(biāo)識它在數(shù)組中的位置。,2.二維數(shù)組的定義 類型說明符 數(shù)組名常量表達(dá)式1常量表達(dá)式2 int a34; 常量表達(dá)式1:表示第一維下標(biāo)的長度 常量表達(dá)式2: 表示第二維下標(biāo)的長度。,3.二維數(shù)組元素的引用,a34=3; /* 下標(biāo)越界 */ a1,2=1; /* 應(yīng)寫成 a12=1; */,例:int a34; a0

8、0=3; a01=a00+10;,數(shù)組名行下標(biāo)表達(dá)式列下標(biāo)表達(dá)式,4二維數(shù)組的初始化,例:int a23=1,2,3,4,5,6;,1)按行賦初值,例:int a23=1,2,3,4,5,6; 初始化后結(jié)果: 1 2 3 4 5 6,2)按數(shù)組元素在內(nèi)存中排列的順序?qū)Ω髟刭x初值,3)給部分元素賦初值,例:int a23=1,4; 初始化后結(jié)果: 1 0 0 4 0 0,4)數(shù)組初始化時,行長度可省,列長度不能省 例如:int a3=1,2,3,4,5,6,7; int b4=1,4,5; 初始化結(jié)果:,a 結(jié)果: a0: 1 2 3 a1: 4 5 6 a2: 7 0 0,b 結(jié)果: b0:

9、 1 0 0 0 b1: 4 5 0 0,下面對二維數(shù)組的定義都是錯誤的:,float x3 =1.0,2.0,3.0,4.0,5.0,6.0;,int a ,b 2,c3 ;,int m24=1,2,3,4,5,6,7,8,9; /* 編譯出錯,初值個數(shù)多于數(shù)組元素的個數(shù) */,5拓展后項(xiàng)目的實(shí)現(xiàn),查看源碼1,6二維數(shù)組經(jīng)典案例 求楊輝三角的前10行并輸出,楊輝三角前5行如下: 1 11 121 1331 14641,任務(wù)六 項(xiàng)目拓展之字符數(shù)組,1字符數(shù)組的定義 2字符數(shù)組的初始化,char c10; 即有10個字符數(shù)據(jù),分別為 c0,c1,c2c9,char c10 = I, , a ,

10、m; 多余元素的值自動為“空”(0),3字符數(shù)組的輸入輸出 1)采用格式控制符%c實(shí)現(xiàn)輸入輸出。 for(i=0;i10;i+) printf(%c,ci); 2)采用格式控制符%s實(shí)現(xiàn)輸入輸出 scanf(%s,c); printf(%s,c); 3)采用字符串函數(shù)實(shí)現(xiàn)輸入輸出,4字符串處理函數(shù),1)回顧:什么是字符串? 2)在C語言中怎樣處理字符串? 3)常用的字符串處理函數(shù),雙引號括起來的一系列字符,如: “abc” “012” “#%” “ ” “啊23”,在C語言中,字符串作為字符數(shù)組處理。字符數(shù)組可以用字符串來初始化。如: char c = “I am happy!” ; char

11、 c = “I am happy!”;,在C的庫函數(shù)中,提供了一些字符串處理函數(shù)。 1)puts()函數(shù):輸出字符串 2)gets()函數(shù):輸入字符串 3)strcat()函數(shù):連接字符串 4)strcpy()函數(shù):字符串復(fù)制 5)strcmp()函數(shù):字符串比較 6)strlwr()函數(shù):將大寫字母轉(zhuǎn)換為小寫 7)strupr()函數(shù):將小寫字母轉(zhuǎn)換為大寫,字符串函數(shù)應(yīng)用舉例,main() char str120,str220; scanf(%s%s,str1,str2); printf(str1=%s,str2=%sn,str1,str2); getch(); ,用%s輸入多個字符串時,可以用空格或換行符來分隔字符串。,#include string.h main() char str120,str220; gets(str1); gets(str2); puts(str1); puts(str2); getch(); ,1)用gets和puts之前必須包含庫文件; 2)用gets一次只能輸入一個字符串,以回車為結(jié)束符; 3)用puts一次只能輸出一個字符串。,#include string.h main() char str120=I am happy!; char str220=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論