歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

C語(yǔ)言程序設(shè)計(jì)清華大學(xué)課件第7章數(shù)組.ppt

  • 資源ID:11494864       資源大?。?span id="vita5wu" class="font-tahoma">967KB        全文頁(yè)數(shù):72頁(yè)
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說(shuō)明有答案則都視為沒有答案,請(qǐng)知曉。

C語(yǔ)言程序設(shè)計(jì)清華大學(xué)課件第7章數(shù)組.ppt

第七章,數(shù)組,問(wèn)題:給一組數(shù)排序,這組數(shù)該如何存放呢,?這些數(shù)據(jù)如何存放才便于排序,1,8,8,8,8,8,8,8,8,8,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,8,8,8,8,8,8,8,8,8,本章要點(diǎn),掌握一維、二維數(shù)組的定義和引用方法、存儲(chǔ)結(jié)構(gòu)和初始化方法。掌握有關(guān)一維數(shù)組的有關(guān)算法掌握數(shù)組的運(yùn)算。,主要內(nèi)容,7.1一維數(shù)組的定義和引用7.2二維數(shù)組的定義和引用7.3字符數(shù)組,7.1一維數(shù)組的定義和引用,C語(yǔ)言為這些數(shù)據(jù),提供了一種構(gòu)造數(shù)據(jù)類型:數(shù)組。所謂數(shù)組就是一組具有相同數(shù)據(jù)類型的數(shù)據(jù)的有序集合。,一個(gè)班學(xué)生的學(xué)習(xí)成績(jī)一行文字一個(gè)矩陣這些數(shù)據(jù)的特點(diǎn)是:1.具有相同的數(shù)據(jù)類型2.使用過(guò)程中需要保留原始數(shù)據(jù),1.一維數(shù)組的定義格式為:類型說(shuō)明符數(shù)組名常量表達(dá)式;例如:inta10;它表示定義了一個(gè)整形數(shù)組,數(shù)組名為a,此數(shù)組有10個(gè)元素。,7.1.1一維數(shù)組的定義,說(shuō)明:1.數(shù)組名定名規(guī)則和變量名相同,遵循標(biāo)識(shí)符定名規(guī)則。,2.在定義數(shù)組時(shí),需要指定數(shù)組中元素的個(gè)數(shù),方括弧中的常量表達(dá)式用來(lái)表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。3.常量表達(dá)式中可以包括常量和符號(hào)常量,但不能包含變量。也就是說(shuō),C語(yǔ)言不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過(guò)程中變量的值。,例如:intn;scanf(“%d,,數(shù)組說(shuō)明中其他常見的錯(cuò)誤:floata0;/*數(shù)組大小為0沒有意義*/intb(2)(3);/*不能使用圓括號(hào)*/intk,ak;/*不能用變量說(shuō)明數(shù)組大小*/,2.一維數(shù)組在內(nèi)存中的存放,每個(gè)數(shù)據(jù)元素占用的字節(jié)數(shù),就是基類型的字節(jié)數(shù)一個(gè)元素占4個(gè)字節(jié),一維數(shù)組:floatmark100;,注意:定義數(shù)組時(shí)用到的“數(shù)組名常量表達(dá)式”和引用數(shù)組元素時(shí)用到的“數(shù)組名下標(biāo)”是有區(qū)別的。例如inta10;t=a6;,7.1.2一維數(shù)組元素的引用,1.數(shù)組元素的引用方式數(shù)組名下標(biāo)下標(biāo)可以是整型常量或整型表達(dá)式。例如:a0=a5+a7-a2*3,2.一維數(shù)組元素引用的程序?qū)嵗?#includevoidmain()inti,a10;for(i=0;i=0;i-)printf("%d,ai);printf("n);,運(yùn)行結(jié)果如下:9876543210程序使a0到a9的值為09,然后按逆序輸出。,對(duì)數(shù)組元素初始化的實(shí)現(xiàn)方法:,1.在定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值。例如:inta10=0,1,2,3,4,5,6,7,8,9;將數(shù)組元素的初值依次放在一對(duì)花括弧內(nèi)。經(jīng)過(guò)上面的定義和初始化之后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。,7.1.3一維數(shù)組的初始化,3.如果想使一個(gè)數(shù)組中全部元素值為0,可以寫成:inta10=0,0,0,0,0,0,0,0,0,0;或inta10=0;不能寫成:inta10=0*10;,2.可以只給一部分元素賦值。例如:inta10=0,1,2,3,4;定義a數(shù)組有10個(gè)元素,但花括弧內(nèi)只提供5個(gè)初值,這表示只給前面5個(gè)元素賦初值,后5個(gè)元素值為0。,4.在對(duì)全部數(shù)組元素賦初值時(shí),由于數(shù)據(jù)的個(gè)數(shù)已經(jīng)確定,因此可以不指定數(shù)組長(zhǎng)度。例如:inta5=1,2,3,4,5;也可以寫成inta=1,2,3,4,5;inta10=1,2,3,4,5;只初始化前5個(gè)元素,后5個(gè)元素為0。,例7-1:用數(shù)組來(lái)處理,求解Fibonacci數(shù)列。,程序?qū)嵗?includevoidmain()inti;intf20=1,1;,Fibonacci數(shù)列公式:已知:a1=a2=1an=an-1+an-2即:1,1,2,3,5,8,13,7.1.4一維數(shù)組程序舉例,for(i=2;i<20;i+)fi=fi-2+fi-1;for(i=0;i<20;i+)if(i%5=0)printf(n);printf(%12d,fi)/*For循環(huán)結(jié)束*/*程序結(jié)束*/,運(yùn)行結(jié)果如下:11235813213455891442333776109871597258441816765,if語(yǔ)句用來(lái)控制換行,每行輸出5個(gè)數(shù)據(jù)。,程序舉例2:用起泡法對(duì)10個(gè)數(shù)排序(由小到大)。,經(jīng)過(guò)第一趟(共5次比較與交換)后,最大的數(shù)9已“沉底”。然后進(jìn)行對(duì)余下的前面5個(gè)數(shù)第二趟比較,,如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較。在第1趟比較中要進(jìn)行n-1次兩兩比較,在第j趟比較中要進(jìn)行n-j次兩兩比較。,程序流程圖如下:,程序?qū)嵗?.3:#includevoidmain()inta10;inti,j,t;printf(input10numbers:n);for(i=0;i<10;i+)scanf("%d",,for(j=0;jai+1)t=ai;ai=ai+1;ai+1=t;printf(thesortednumbers:n);for(i=0;i<10;i+)printf(%d,ai);printf(n);/*程序結(jié)束*/,程序運(yùn)行結(jié)果如下:input10numbers:10481265-76100-45123thesortednumbers:-76-4501481265100123,7.2二維數(shù)組的定義和引用,7.2.1二維數(shù)組的定義,二維數(shù)組定義的一般形式為類型說(shuō)明符數(shù)組名常量表達(dá)式常量表達(dá)式;例如:定義a為34(3行4列)的數(shù)組,b為510(5行10列)的數(shù)組。如下:floata34,b510;,不能寫成floata3,4,b5,10;,注意:我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個(gè)一維數(shù)組。例如:可以把a(bǔ)看作是一個(gè)一維數(shù)組,它有3個(gè)元素:a0、a1、a2,每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。,7.2.1二維數(shù)組的定義,二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素,一維數(shù)組在內(nèi)存中的存放,下圖表示對(duì)a34數(shù)組存放的順序,地址值數(shù)組元素,b00b01b02b10b11b12b20b21b22,3000H3002H3004H3006H3008H300AH300CH300EH3010H,例如:整型數(shù)組b33=1,2,3,4,5,6,7,8,9;,123,456,789,問(wèn)題:有了二維數(shù)組的基礎(chǔ),那么多維數(shù)組如何定義呢?,定義三維數(shù)組:floata234;注意:多維數(shù)組元素在內(nèi)存中的排列順序:第一維的下標(biāo)變化最慢,最右邊的下標(biāo)變化最快。,7.2.1二維數(shù)組的定義,三維數(shù)組的元素排列順序,二維數(shù)組元素的表示形式為:數(shù)組名下標(biāo)下標(biāo)例如:a23下標(biāo)可以是整型表達(dá)式,如a2-12*2-1,數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值例如:b12=a23/2,7.2.2二維數(shù)組的引用,常出現(xiàn)的錯(cuò)誤有:inta34;/*定義a為34的數(shù)組*/a34=3;,在使用數(shù)組元素時(shí),應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。,可以用下面4種方法對(duì)二維數(shù)組初始化:,數(shù)據(jù)類型數(shù)組名常量表達(dá)式1常量表達(dá)式2初始化數(shù)據(jù);,.分行給二維數(shù)組賦初值。例如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;,.可以將所有數(shù)據(jù)寫在一個(gè)花括號(hào)內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。例如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;,7.2.3二維數(shù)組的引用,.可以對(duì)部分元素賦初值。例如:inta34=1,5,9;,100050009000,也可以對(duì)各行中的某一元素賦初值,如inta34=1,0,6,0,0,11;,1000060000011,100056000000,也可以只對(duì)某幾行元素賦初值。如:inta34=1,5,6;,.如果對(duì)全部元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省。例如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;它等價(jià)于:inta4=1,2,3,4,5,6,7,8,9,10,11,12;,在定義時(shí)也可以只對(duì)部分元素賦初值而省略第一維的長(zhǎng)度,但應(yīng)分行賦初值。例如:inta4=0,0,3,0,10;,0030000001000,7.2.4二維數(shù)組程序舉例,例7.4將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中。,#includevoidmain()inta23=1,2,3,4,5,6;intb32,i,j;printf(arraya:n);for(i=0;i<=1;i+)for(j=0;j<=2;j+),printf(%5d,aij);bji=aij;printf(n);printf(arrayb:n);for(i=0;i<=2;i+)for(j=0;j<=1;j+)printf("%5d,bij);printf(n);/*程序結(jié)束*/,運(yùn)行結(jié)果如下:arraya:123456arrayb:142536,例7.5:有一個(gè)34的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。,N-S流程圖表示算法如下:,程序:#includevoidmain()inti,j,row=0,colum=0,max;inta34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;,for(i=0;imax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);/*程序結(jié)束*/,7.3字符數(shù)組,7.3.1字符數(shù)組的定義,定義方法與前面介紹的類似。例如:charc10;c0=I;c1=;c2=a;c3=m;c4=;c5=h;c6=a;c7=p;c8=p;c9=y;,對(duì)字符數(shù)組初始化,可逐個(gè)字符賦給數(shù)組中各元素。例如:charc10=I,a,m,h,a,p,p,y,7.3.2字符數(shù)組的初始化,如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動(dòng)定為空字符。,如果提供的初值個(gè)數(shù)與預(yù)定的數(shù)組長(zhǎng)度相同,在定義時(shí)可以省略數(shù)組長(zhǎng)度,系統(tǒng)會(huì)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度。,charc=I,a,m,h,a,p,p,y;數(shù)組c的長(zhǎng)度自動(dòng)定為10。,chardiamond55=,*,*,*,*,*,*,*,*,定義和初始化一個(gè)二維字符數(shù)組,7.3.3字符數(shù)組的引用,例7.6輸出一個(gè)字符串。,程序如下:#includevoidmain()charc10=I,a,m,a,b,o,y;inti;for(i=0;i<10;i+)printf(%c,ci);printf(n);,運(yùn)行結(jié)果:Iamaboy,例7.7輸出一個(gè)鉆石圖形,#includevoidmain()chardiamond5=,*,*,*,*,*,*,*,*;inti,j;for(i=0;i<5;i+)for(j=0;j字符串2,函數(shù)值為一正整數(shù)。(3)如果字符串1str2)printf(yes);而只能用if(strcmp(str1,str2)>0)printf(yes);,6.strlen函數(shù)其一般形式為:strlen(字符數(shù)組)strlen是測(cè)試字符串長(zhǎng)度的函數(shù)。函數(shù)的值為字符串中的實(shí)際長(zhǎng)度(不包括0在內(nèi))。例如:charstr10=China;printf(%d,strlen(str);輸出結(jié)果不是10,也不是6,而是5。也可以直接測(cè)試字符串常量的長(zhǎng)度,如strlen(China);,7.strlwr函數(shù)其一般形式為:strlwr(字符串)strlwr函數(shù)的作用是將字符串中大寫字母換成小寫字母。,8.strupr函數(shù)其一般形式為:strupr(字符串)strupr函數(shù)的作用是將字符串中小寫字母換成大寫字母。,例7.8輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞,單詞之間用空格分隔開。,7.3.7字符數(shù)組應(yīng)用舉例,程序如下:#includevoidmain()charstring81;inti,num=0,word=0;charc;gets(string);for(i=0;(c=stringi)!=0;i+),if(c=)word=0;elseif(word=0)word=1;num+;printf(Thereare%dwordsintheline.n,num);,運(yùn)行情況如下:Iamaboy.Thereare4wordsintheline.,例7.9有3個(gè)字符串,要求找出其中最大者,程序如下:#include#includevoidmain()charstring20;charstr320;inti;for(i=0;i0)strcpy(string,str0)elsestrcpy(string,str1);if(strcmp(str2,string)>0)strcpy(string,str2);printf(nthelargeststringisn%sn,string);,運(yùn)行結(jié)果如下:CHINAHOLLANDAMERICAthelargeststringisHOLLAND,

注意事項(xiàng)

本文(C語(yǔ)言程序設(shè)計(jì)清華大學(xué)課件第7章數(shù)組.ppt)為本站會(huì)員(max****ui)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!