




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 15269-2025雪茄煙
- 2025鋼材買賣合同樣本
- 代理記賬公司培訓(xùn)
- 2025全面商用建筑設(shè)計合同
- 2025居民購房合同協(xié)議書標(biāo)準(zhǔn)
- 2025二手折彎機(jī)買賣合同
- 2025臨時工合同模板
- 2025中外合作合同范本2
- 汽車美容服務(wù)流程優(yōu)化策略探討試題及答案
- 教育智能體的構(gòu)建與實(shí)踐路徑探討
- 《中央八項(xiàng)規(guī)定精神學(xué)習(xí)教育》專項(xiàng)講座
- 經(jīng)典物理浮力計算題(含答案)
- 2021年中國海洋大學(xué)輔導(dǎo)員招聘試題及答案解析
- 生物地理中考總復(fù)習(xí)知識點(diǎn)(地生中考,要這樣復(fù)習(xí))
- 云南省大理白族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)
- 勞動者就業(yè)登記表(通用模板)
- 壓力容器(氣瓶)風(fēng)險點(diǎn)告知卡
- 斜屋面專項(xiàng)施工方案-掛瓦坡屋面(附圖)
- 自保溫砌塊施工方案
- 合成氣生產(chǎn)甲醇工藝流程圖
- T分布臨界值表
評論
0/150
提交評論