




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第6章利用數(shù)組處理批量數(shù)據(jù)一、數(shù)組的基本概念二、一維數(shù)組三、二維數(shù)組四、字符數(shù)組主要內(nèi)容一、數(shù)組的基本概念 數(shù)組是一種構(gòu)造數(shù)據(jù)類型。 數(shù)組是有序數(shù)據(jù)的集合。 數(shù)組中的每一個元素都屬于同一數(shù)據(jù)類型。 用一個統(tǒng)一的數(shù)組名和下標唯一地確定數(shù)組中的元素。二、一維數(shù)組一維數(shù)組的定義格式類型說明符 數(shù)組名常量表達式舉例int a10;說明1. 數(shù)組名的命名規(guī)則應(yīng)遵循標識符的命名規(guī)則。2. 數(shù)組名后是方括號,而非圓括號。3. 常量表達式表示元素的個數(shù),即數(shù)組長度。a0, a1, a2, a3, a4, a5, a6, a7, a8, a94. 常量表達式中可以包含常量和符號常量,不能包含變量。#define
2、 n 10int main()int an, bn+10,C2+3;從a0開始,沒有a10.標識符只能由字母、數(shù)字、下劃線組成。且第一個字符 必須為字母或下劃線。整型表達式,表達式中可以使用符號常量。二、一維數(shù)組一維數(shù)組元素的引用格式數(shù)組名下標說明1. 數(shù)組必須先定義,后使用。2. 數(shù)組元素只能逐個引用,而不能一次引用整個數(shù)組。 數(shù)組元素的引用與同類型的一般變量使用方式一樣。int a10;a0=10; a2=a0*5;scanf(“%d”,&a5); printf(“%d”,a5);int i,a10;for (i=0; i=0; i-) printf(“%2d”,ai);3. 當逐個使用數(shù)
3、組中的每一個元素時,通常借助for循環(huán)語句。9 8 7 6 5 4 3 2 1 0 數(shù)組作為函數(shù)的參數(shù)時傳遞的是首地址。二、一維數(shù)組一維數(shù)組的初始化說明1. 定義數(shù)組時,對數(shù)組元素賦初值。2. 可以只給一部分數(shù)組元素賦初值。3. 要想使數(shù)組中全部元素數(shù)據(jù)為0,則采用如下形式。int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;其它?int a10=0,0,0,0,0,0,0,0,0,0;4. 在對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。int a =0,1,2,3,4;上機時可以使用:int a10=0; 一維數(shù)組程序舉例例6-1求Fibonacci數(shù)
4、列的前20個數(shù)。例6-2用冒泡法對10個數(shù)排序。(由大到?。﹊nt main( ) int green,blue,red,a10,temp; for (green=0;green=9;green+) agreen=int(rand()/600);printf(%d,agreen); printf(n); for(red=0;red=red-1;green-) if(agreenagreen+1) temp=agreen;agreen=agreen+1;agreen+1=temp; for (green=0;green=9;green+)printf( %d ,agreen); printf(n
5、); return 0;給10個數(shù)組元素賦隨機數(shù)并打印,rand()函數(shù)的作用是產(chǎn)生-90到32767之間的隨機整數(shù)。對10個數(shù)組元素排序.輸出排序后的10個數(shù)組元素.一維數(shù)組程序舉例例6-3對冒泡法排序程序的改進。問題:對30個數(shù)排序?對60個數(shù)排序列?對部分數(shù)據(jù)排序列?找出共性int green,blue,red,a10,temp,bp,ep;bp=0;ep=9;for(red=bp;red=red-1;green-) if(agreenagreen+1) temp=agreen; agreen=agreen+1; agreen+1=temp;for (green=bp;green=ep;
6、green+)printf( %d ,agreen); printf(n);分析:只要確定需要排序數(shù)據(jù)的開始位置(bp)和終止位置(ep),將循環(huán)控制變量的初值和終值用它們代替即可。對不同的排序?qū)ο笾恍栊薷腷p和ep的值即可(在編程序時還應(yīng)該考慮數(shù)組的大小,be和ep也可以用符號常量)。這樣的改進對今后是非常重要的。一維數(shù)組程序舉例例6-4用選擇法對10個數(shù)進行排序。(由大到小)for (green=0;green=8;green+) red=green; for (blue=green+1;blue=9;blue+) if (ared ablue) red=blue; if(red!=gre
7、en) temp=agreen; agreen=ared; ared=temp; 指定當前最大數(shù)應(yīng)該放置的位置green。.查找當前最大數(shù)的位置red。將當前最大數(shù)(red標識)放到指定位置(用green標識)三、二維數(shù)組二維數(shù)組的定義格式類型說明符 數(shù)組名常量表達式1 常量表達式2舉例float a23, b45;說明1. 二維數(shù)組中元素的排列順序是:先行后列。 因此,可以把二維數(shù)組看成是一個矩陣。2. 二維數(shù)組元素仍然是從a00開始。a00, a01, a02 a10, a11, a12 二維數(shù)組元素的引用格式數(shù)組名下標1 下標2說明1. 數(shù)組必須先定義,后使用。2. 數(shù)組元素只能逐個引用
8、,而不能一次引用整個數(shù)組。 數(shù)組元素的引用與同類型的一般變量使用方式一樣。int a23;a01=10; a02=a01*5;scanf(“%d”,&a11); printf(“%d”,a11);int i,j;float a45;for (i=0; i=3; i+) for (j=0; j=4; j+) scanf(“%d”,aij);3. 二維數(shù)組輸入/輸出的一般格式。float a56;for (i=1; i=4; i+) for (j=1; j=5; j+) scanf(“%d”,aij);int i,j;float a45;for (i=0; i=3; i+) for (j=0; j
9、=4; j+) printf(“%d”,aij); printf”n”);float a56;for (i=1; i=4; i+) for (j=1; j=5; j+) printf(“%d”,aij); printf(“n”);二維數(shù)組的初始化說明1. 分行給二維數(shù)組賦初值。2. 按數(shù)組的排列順序?qū)Ω鲾?shù)組元素賦初值。3. 可以對部分元素賦初值。int a23=1,2,3,4,5,6;int b23=1,2,3,4,5,6;int c34=1,5,9;4. 在對全部數(shù)組元素賦初值時,數(shù)組第一維的長度可以不指定。int e 3=1,2,3,4,5,6;int d34=1,5,6,0,9,7;in
10、t f 4=0,0,3,0,0,10;1 2 34 5 6 1 2 34 5 6 1 0 0 0 5 0 0 09 0 0 0 1 0 0 0 5 6 0 0 0 9 7 0 1 2 34 5 6 0 0 3 0 0 0 0 0 0 10 0 0 二維數(shù)組程序舉例例6-5將一個二維數(shù)組元素的行和列元素互換,存在另一個二維數(shù)組中。例6-6有一個3*4矩陣,輸出最大元素的值,及其所在的行號和列號。int main()int i,j,max,row=0,colum=0; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for (i=0;i=2;i+) fo
11、r (j=0;jmax) max=aij; row=i; colum=j; printf(“max=%d,row=%d,colum=%dn”,max, row, colum); return 0;程序運行結(jié)果 : max=10,row=2,colum=1幻方的算法魔方陣的排列規(guī)律如下:(魔方陣應(yīng)為奇數(shù)方陣)(1)將1放在第一行的中間列;(2)從2開始直到n2止各數(shù)依次按下列規(guī)則存放:每一個數(shù)存放的行比前一個數(shù)的行數(shù)減1,列數(shù)加1;(3)如果上一個數(shù)的行數(shù)為1時,下一個數(shù)的行數(shù)應(yīng)為n(即最后一行)。例如,1的行數(shù)為1,則2的行數(shù)應(yīng)該放在最后一行,為n。列數(shù)加1;(4)當上一個數(shù)的列數(shù)為最后一列n
12、時,下一個數(shù)的列數(shù)應(yīng)為1,行數(shù)仍然減1。(5)如果按上面的規(guī)則確定的位置已有數(shù),或上一個數(shù)是第一行第n列時,則把下一個數(shù)放在上一個數(shù)的下面。按此方法,即可得到任何階的方陣。二維數(shù)組程序舉例例6-6有一個3*4矩陣,輸出最大元素的值,及其所在的行號和列號。int main()int i,j,max,row=0,colum=0; int a34=1,2,3,4,9,8,7,6,-10,10,-5,2; max=a00; for (i=0;i=2;i+) for (j=0;jmax) max=aij; row=i; colum=j; printf(“max=%d,row=%d,colum=%dn”,
13、max, row, colum); return 0;程序運行結(jié)果 : max=10,row=2,colum=1四、字符數(shù)組(一)字符數(shù)組(二)字符串(一)字符數(shù)組定義初始化char c5=h,a,p,p,y;引用int main()char c5=h,a,p,p,y; int i; for (i=0;i字符串2,則函數(shù)值為一個正整數(shù);如果字符串1字符串2,則函數(shù)值為一個負整數(shù)。strlen函數(shù)測字符串長度的函數(shù)strlen(字符數(shù)組)測字符串長度的函數(shù)。函數(shù)的值為字符串中的實際長度(不包括0 在內(nèi))。strlwr函數(shù)轉(zhuǎn)換為小寫的函數(shù)strlwr(字符串)作用是將字符串中大寫字母換成小寫字母。
14、strupr函數(shù)轉(zhuǎn)換為大寫的函數(shù)strupr(字符串)作用是將字符串中小寫字母換成大寫字母。(二)字符串舉例例1輸入5個字符串,輸出其中長度最大者。#include int main()char string20; char str520; int i; for (i=0;i5;i+) gets(stri); strcpy(string,str0); for (i=1;istrlen(string) strcpy(string,stri); printf(the largest string is :%sn,string); return 0;RussaFranceAmericaKreaChi
15、naThe largest string is:America題1輸入10個數(shù),輸出最大值、最小值以及平均值(用數(shù)組實現(xiàn))。練習(xí)題題2用冒泡法對10個數(shù)排序。(由小到大)題3打印如下楊輝三角形。(要求打印出10行)11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 .題4輸入4名學(xué)生的姓名及三門課成績,打印學(xué)生成績表。(姓名、三門課成績、平均分)如何按平均分將學(xué)生成績排序?答案題4輸入4名學(xué)生的姓名及三門課成績,打印學(xué)生成績表。(姓名、三門課成績、平均分)main()int i,j; char str510; float score54,ave5,sum; for (
16、i=1;i=4;i+) printf(input the name of number %d:,i); scanf(%s,stri); printf(input the scores of number%d:,i); scanf(%f%f%f,&scorei1,&scorei2,&scorei3); for (i=1;i=4;i+) sum=0; for (j=1;j=3;j+) sum=sum+scoreij; avei=sum/3; printf(n *the table of score*n); printf(-n); printf(name math eng com aven); pr
17、intf(-n); for (i=1;i=4;i+) printf(%-5s,stri); for (j=1;j=3;j+) printf(%6.1f,scoreij); printf(%6.1fn,avei); printf(-n);輸入4名學(xué)生的姓名及三門課成績。求4名學(xué)生的平均分。按一定的格式輸出4名學(xué)生的姓名、成績、平均分。答案main()char str510; float score54,ave5; void input(float score54,char str510); void average(float score54,float ave5); void output(f
18、loat score54,char str510,float ave5); input(score,str); average(score,ave); output(score,str,ave); void input(float score54,char str510)int i; for (i=1;i=4;i+) printf(input the name of number %d:,i); scanf(%s,stri); printf(input the scores of number%d:,i); scanf(%f%f%f,&scorei1,&scorei2,&scorei3); void average(float score54,float ave5)int i,j; float sum; for (i=1;i=4;i+) sum=0; for (j=1;j=3;j+) sum=sum+scoreij; avei=sum/3; void output(float score54,cha
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車行業(yè)勞動合同與租賃合同解析通則
- 標準勞動合同簡易模板
- 吊籃采購合同參考范本
- Module 1 Unit 1 Hello!(教學(xué)設(shè)計)-2024-2025學(xué)年外研版(一起)英語一年級上冊
- 企業(yè)股權(quán)轉(zhuǎn)讓法律合同
- 度購物中心戶外廣告牌制作安裝合同
- 技術(shù)轉(zhuǎn)讓與許可合同樣本
- 計劃生育政策變動導(dǎo)致的勞動合同終止范本
- 交通建設(shè)合同轉(zhuǎn)讓協(xié)議書
- 9 明天要遠足(教學(xué)設(shè)計)2024-2025學(xué)年-統(tǒng)編版語文一年級上冊
- 膠帶輸送機司機培訓(xùn)
- 市政工程旁站監(jiān)理方案
- 馬工程-公共財政概論-課程教案
- 千年菩提路解說詞
- 滲透檢測報告
- DB4401-T 1-2018老年人照顧需求等級評定規(guī)范-(高清現(xiàn)行)
- 值班、交接班制度課件
- 領(lǐng)導(dǎo)干部道德修養(yǎng)1
- 房地產(chǎn)現(xiàn)金流量表
- 《ANSYS有限元基礎(chǔ)》課程教學(xué)大綱
- 國內(nèi)外創(chuàng)造性思維培養(yǎng)模式的對比研究綜述
評論
0/150
提交評論