![C語言程序設(shè)計(jì)課件:第6章 利用數(shù)組處理批量數(shù)據(jù)_第1頁](http://file4.renrendoc.com/view/ea1c3a5bdbb3dfe6ae3c43d2602cb198/ea1c3a5bdbb3dfe6ae3c43d2602cb1981.gif)
![C語言程序設(shè)計(jì)課件:第6章 利用數(shù)組處理批量數(shù)據(jù)_第2頁](http://file4.renrendoc.com/view/ea1c3a5bdbb3dfe6ae3c43d2602cb198/ea1c3a5bdbb3dfe6ae3c43d2602cb1982.gif)
![C語言程序設(shè)計(jì)課件:第6章 利用數(shù)組處理批量數(shù)據(jù)_第3頁](http://file4.renrendoc.com/view/ea1c3a5bdbb3dfe6ae3c43d2602cb198/ea1c3a5bdbb3dfe6ae3c43d2602cb1983.gif)
![C語言程序設(shè)計(jì)課件:第6章 利用數(shù)組處理批量數(shù)據(jù)_第4頁](http://file4.renrendoc.com/view/ea1c3a5bdbb3dfe6ae3c43d2602cb198/ea1c3a5bdbb3dfe6ae3c43d2602cb1984.gif)
![C語言程序設(shè)計(jì)課件:第6章 利用數(shù)組處理批量數(shù)據(jù)_第5頁](http://file4.renrendoc.com/view/ea1c3a5bdbb3dfe6ae3c43d2602cb198/ea1c3a5bdbb3dfe6ae3c43d2602cb1985.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第6章利用數(shù)組處理批量數(shù)據(jù)一、數(shù)組的基本概念二、一維數(shù)組三、二維數(shù)組四、字符數(shù)組主要內(nèi)容一、數(shù)組的基本概念 數(shù)組是一種構(gòu)造數(shù)據(jù)類型。 數(shù)組是有序數(shù)據(jù)的集合。 數(shù)組中的每一個(gè)元素都屬于同一數(shù)據(jù)類型。 用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)唯一地確定數(shù)組中的元素。二、一維數(shù)組一維數(shù)組的定義格式類型說明符 數(shù)組名常量表達(dá)式舉例int a10;說明1. 數(shù)組名的命名規(guī)則應(yīng)遵循標(biāo)識符的命名規(guī)則。2. 數(shù)組名后是方括號,而非圓括號。3. 常量表達(dá)式表示元素的個(gè)數(shù),即數(shù)組長度。a0, a1, a2, a3, a4, a5, a6, a7, a8, a94. 常量表達(dá)式中可以包含常量和符號常量,不能包含變量。#define
2、 n 10int main()int an, bn+10,C2+3;從a0開始,沒有a10.標(biāo)識符只能由字母、數(shù)字、下劃線組成。且第一個(gè)字符 必須為字母或下劃線。整型表達(dá)式,表達(dá)式中可以使用符號常量。二、一維數(shù)組一維數(shù)組元素的引用格式數(shù)組名下標(biāo)說明1. 數(shù)組必須先定義,后使用。2. 數(shù)組元素只能逐個(gè)引用,而不能一次引用整個(gè)數(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. 當(dāng)逐個(gè)使用數(shù)
3、組中的每一個(gè)元素時(shí),通常借助for循環(huán)語句。9 8 7 6 5 4 3 2 1 0 數(shù)組作為函數(shù)的參數(shù)時(shí)傳遞的是首地址。二、一維數(shù)組一維數(shù)組的初始化說明1. 定義數(shù)組時(shí),對數(shù)組元素賦初值。2. 可以只給一部分?jǐn)?shù)組元素賦初值。3. 要想使數(shù)組中全部元素?cái)?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í),可以不指定數(shù)組長度。int a =0,1,2,3,4;上機(jī)時(shí)可以使用:int a10=0; 一維數(shù)組程序舉例例6-1求Fibonacci數(shù)
4、列的前20個(gè)數(shù)。例6-2用冒泡法對10個(gè)數(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個(gè)數(shù)組元素賦隨機(jī)數(shù)并打印,rand()函數(shù)的作用是產(chǎn)生-90到32767之間的隨機(jī)整數(shù)。對10個(gè)數(shù)組元素排序.輸出排序后的10個(gè)數(shù)組元素.一維數(shù)組程序舉例例6-3對冒泡法排序程序的改進(jìn)。問題:對30個(gè)數(shù)排序?對60個(gè)數(shù)排序列?對部分?jǐn)?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的值即可(在編程序時(shí)還應(yīng)該考慮數(shù)組的大小,be和ep也可以用符號常量)。這樣的改進(jìn)對今后是非常重要的。一維數(shù)組程序舉例例6-4用選擇法對10個(gè)數(shù)進(jìn)行排序。(由大到?。ゝor (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; 指定當(dāng)前最大數(shù)應(yīng)該放置的位置green。.查找當(dāng)前最大數(shù)的位置red。將當(dāng)前最大數(shù)(red標(biāo)識)放到指定位置(用green標(biāo)識)三、二維數(shù)組二維數(shù)組的定義格式類型說明符 數(shù)組名常量表達(dá)式1 常量表達(dá)式2舉例float a23, b45;說明1. 二維數(shù)組中元素的排列順序是:先行后列。 因此,可以把二維數(shù)組看成是一個(gè)矩陣。2. 二維數(shù)組元素仍然是從a00開始。a00, a01, a02 a10, a11, a12 二維數(shù)組元素的引用格式數(shù)組名下標(biāo)1 下標(biāo)2說明1. 數(shù)組必須先定義,后使用。2. 數(shù)組元素只能逐個(gè)引用
8、,而不能一次引用整個(gè)數(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í),數(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將一個(gè)二維數(shù)組元素的行和列元素互換,存在另一個(gè)二維數(shù)組中。例6-6有一個(gè)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;程序運(yùn)行結(jié)果 : max=10,row=2,colum=1幻方的算法魔方陣的排列規(guī)律如下:(魔方陣應(yīng)為奇數(shù)方陣)(1)將1放在第一行的中間列;(2)從2開始直到n2止各數(shù)依次按下列規(guī)則存放:每一個(gè)數(shù)存放的行比前一個(gè)數(shù)的行數(shù)減1,列數(shù)加1;(3)如果上一個(gè)數(shù)的行數(shù)為1時(shí),下一個(gè)數(shù)的行數(shù)應(yīng)為n(即最后一行)。例如,1的行數(shù)為1,則2的行數(shù)應(yīng)該放在最后一行,為n。列數(shù)加1;(4)當(dāng)上一個(gè)數(shù)的列數(shù)為最后一列n
12、時(shí),下一個(gè)數(shù)的列數(shù)應(yīng)為1,行數(shù)仍然減1。(5)如果按上面的規(guī)則確定的位置已有數(shù),或上一個(gè)數(shù)是第一行第n列時(shí),則把下一個(gè)數(shù)放在上一個(gè)數(shù)的下面。按此方法,即可得到任何階的方陣。二維數(shù)組程序舉例例6-6有一個(gè)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;程序運(yùn)行結(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ù)值為一個(gè)正整數(shù);如果字符串1字符串2,則函數(shù)值為一個(gè)負(fù)整數(shù)。strlen函數(shù)測字符串長度的函數(shù)strlen(字符數(shù)組)測字符串長度的函數(shù)。函數(shù)的值為字符串中的實(shí)際長度(不包括0 在內(nèi))。strlwr函數(shù)轉(zhuǎn)換為小寫的函數(shù)strlwr(字符串)作用是將字符串中大寫字母換成小寫字母。
14、strupr函數(shù)轉(zhuǎn)換為大寫的函數(shù)strupr(字符串)作用是將字符串中小寫字母換成大寫字母。(二)字符串舉例例1輸入5個(gè)字符串,輸出其中長度最大者。#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個(gè)數(shù),輸出最大值、最小值以及平均值(用數(shù)組實(shí)現(xiàn))。練習(xí)題題2用冒泡法對10個(gè)數(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025工程建設(shè)招標(biāo)投標(biāo)合同(投標(biāo)書)范文
- 醫(yī)美醫(yī)院上班合同范例
- 兄弟分割宅基地合同范本
- 關(guān)店分家合同范本
- 書營銷合同范例
- 醫(yī)院推廣合同范例范例
- 出游活動合同范本
- 代辦評估服務(wù)合同范例
- 信州租房合同范例
- 買賣合同和商務(wù)合同范例
- 《高處作業(yè)安全》課件
- 春節(jié)后收心安全培訓(xùn)
- 小學(xué)教師法制培訓(xùn)課件
- 電梯操作證及電梯維修人員資格(特種作業(yè))考試題及答案
- 市政綠化養(yǎng)護(hù)及市政設(shè)施養(yǎng)護(hù)服務(wù)方案(技術(shù)方案)
- SLT824-2024 水利工程建設(shè)項(xiàng)目文件收集與歸檔規(guī)范
- 鍋爐本體安裝單位工程驗(yàn)收表格
- 我國水體中抗生素的污染現(xiàn)狀、危害及防治建議
- 手術(shù)出血量的評估
- 報(bào)價(jià)單(產(chǎn)品報(bào)價(jià)單)
- 一種基于STM32的智能門鎖系統(tǒng)的設(shè)計(jì)-畢業(yè)論文
評論
0/150
提交評論