C語(yǔ)言-一維數(shù)組的定義和引用-數(shù)組.ppt_第1頁(yè)
C語(yǔ)言-一維數(shù)組的定義和引用-數(shù)組.ppt_第2頁(yè)
C語(yǔ)言-一維數(shù)組的定義和引用-數(shù)組.ppt_第3頁(yè)
C語(yǔ)言-一維數(shù)組的定義和引用-數(shù)組.ppt_第4頁(yè)
C語(yǔ)言-一維數(shù)組的定義和引用-數(shù)組.ppt_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余42頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、第七章分組數(shù)組:它是一種構(gòu)造類型,元素由基本類型(整體、實(shí)部和字符)組成。它是同類數(shù)據(jù)的有序集合。7.1一維數(shù)組的定義和引用7.1.1一維數(shù)組的定義形式:類型描述符數(shù)組名稱常量表達(dá)式,如:int a5浮動(dòng)b10描述:1 .命名規(guī)則:數(shù)組名由合法的標(biāo)識(shí)符組成。2.數(shù)組名稱由常量表達(dá)式包圍,包括整數(shù)、字符和符號(hào)常量表達(dá)式。例如,int a23,b5,ca,_ D8,XYZ # (#=35) #定義n5main()int an;printf(“% dn”,a1=100);并且:int a(10),bx,%5,83,x-y50,5x100正確嗎?另一個(gè)例子:int I=5;int a5 i正確嗎?3.

2、數(shù)組的長(zhǎng)度為INTA5A0、A1、A2、A3、A4,下標(biāo)從0.4開始。注意:在Turbo C中,可以引用超過定義的數(shù)組下標(biāo)的元素,系統(tǒng)不檢查它們。例如T7-0-1.c main() int i,a5;對(duì)于(I=0;I=4;I)printf(“a % d=% d n”,I,ai=I 1);printf(“a5=% dt”,a5);printf(“a6=% d n”,a6);運(yùn)行結(jié)果:A0=1 a1=2 a2=3 a3=4 a4=5 a5=-30 a6=285。4.數(shù)組大小的定義只能是常量,不能是變量或動(dòng)態(tài)的。例7-0-2。C main() int n=5,an;a1=100printf(“a1=

3、% dn”,a1);編譯指出:函數(shù)main中需要常量表達(dá)式;7.1.2一維數(shù)組元素的引用規(guī)則:1。先定義,然后使用。2.引用形式:數(shù)組名稱的下標(biāo)可以是常量、變量或整數(shù)或字符類型的表達(dá)式。3.引用方法:用于元素而不是整個(gè)數(shù)組。例如,a0=ab-a a b -96 a3-a2*2例T7-1。c按順序給數(shù)組a賦值,并以相反的順序輸出main() int a5,I;對(duì)于(I=0;I=0;I-)printf( a % d=% dn ,I,ai);運(yùn)行結(jié)果:a4=4 a3=3 a2=2 a1=1 a0=0,7.1.3一維數(shù)組的初始化方法如下:1。定義時(shí),初始化數(shù)組元素,如: int a5=1,2,3,4,

4、5;2.只給某些元素賦值,例如:int a5=1,3,5;3.在初始化期間為所有元素分配0值,例如:int a5=0,0,0,0,0;或者int a5=0;4.為所有元素賦值時(shí),不能指定長(zhǎng)度,例如:int a5=2,4,6,8,10;或int a=2,4,6,8,10;同樣的效果。在示例T7-1-1.c中,為數(shù)組元素初始化main()int I;int a5=2,4,6,8,10;對(duì)于(I=0;I=4;I)printf(“% dn”,ai);注:靜態(tài)存儲(chǔ)類別,這與新的ANSI標(biāo)準(zhǔn)一致。如果采用靜態(tài),數(shù)組元素的值存儲(chǔ)在靜態(tài)區(qū)域。運(yùn)行結(jié)果:2 4 6 8 10,7.1.4一維數(shù)組程序示例T7-2.

5、c求解斐波那契數(shù)列問題關(guān)于斐波那契算法:前兩個(gè)數(shù)各為1,后兩個(gè)數(shù)為前兩個(gè)數(shù)之和。main()int I;int f20=1,1;對(duì)于(I=2;i20I)fi=fi-2 fi-1;對(duì)于(I=0;i20I)if(I % 5=0)printf(“n”);printf(d,fi;運(yùn)行結(jié)果:1 1 2 3 5 8 13 21 34 55 144 233 377 610 987 1597 2584 4181 6765,案例T7-3.c使用冒泡方法對(duì)6個(gè)數(shù)字進(jìn)行排序(從小到大),思維3360比較兩個(gè)相鄰的數(shù)字,如果是小的,則轉(zhuǎn)移到前面,如果不是小的,則應(yīng)該進(jìn)行比較。在第一輪,大量的人沉入谷底,第二輪,第四輪

6、和第五輪,這里:n=6,外循環(huán)是j(1n-1)次,內(nèi)循環(huán)是i (1n-j)次,98 88 88 88 555,55 94 44,44 49 22,22 29 0,00 009,85 55 5,5。4 4 8 2 2,2 2 2 8 0,0 0 0 8,5 4 4 4,4 5 2 2,2 2 5 0,0 0 5,4 2 2 2,2 4 0,0 0 4,2 0,0 2,main()int a7;int i,j,t;printf(“輸入6個(gè)數(shù)字:n”);對(duì)于(I=1;IAI 1)t=ai;ai=ai 1;ai 1=t;printf(“已排序的數(shù)字:n”);對(duì)于(I=1;i7;I)printf(“%

7、d _ ”, ai);運(yùn)行:輸入6數(shù)字:輸入:9 8 5 4 2 0輸出:0 2 4 5 8 9,7.2二維數(shù)組的定義和引用7.2.1二維數(shù)組1的定義。一般形式:類型說明符數(shù)組名稱常量表達(dá)式常量表達(dá)式,例如:float a34定義數(shù)組a在c中有三行四列,二維數(shù)組可以看作是一個(gè)特殊的一維數(shù)組。如上文所定義的,它可以被視為具有三個(gè)元素的一維陣列,并且每個(gè)元素可以被視為包含四個(gè)元素的一維陣列。因此,上述定義相當(dāng)于:浮點(diǎn)a04、a14、a24。注:如果在實(shí)踐中對(duì)其進(jìn)行了定義,將被視為重新定義。2.二維陣列的每個(gè)元素在存儲(chǔ)器中的存儲(chǔ)順序是:按照第一列的順序,例如T7-3-1c main()int I,j

8、,a23對(duì)于(I=0;I2;I)對(duì)于(j=0;J3;j)掃描頻率( %d ,輸入:1 3 5 7 9 11輸出:浮點(diǎn)a23,k;對(duì)于(I=0;I2;I)對(duì)于(j=0;J3;j)對(duì)于(j=0 ), scanf(%)f;J3;j)Scanf(“% f % f”),共24個(gè)元素。記憶的排列順序是:第三維變化最快,然后是第二維,第一維變化最慢。7 . 2 . 2 2D數(shù)組的引用形式:數(shù)組名下標(biāo)其中:下標(biāo)是常量、變量或整數(shù)或字符類型的表達(dá)式。(定義時(shí)不能使用變量)例如:a12聯(lián)合執(zhí)行活動(dòng)1。數(shù)組元素可以出現(xiàn)在表達(dá)式中,例如:a12=a22/2 2。使用數(shù)組元素時(shí),應(yīng)注意不要超出定義范圍;例如,int a

9、23a23=5;7.2.3二維數(shù)組1的初始化。按行將初始值賦給二維數(shù)組,例如:int a23=1,2,3,4,5,6;2.根據(jù)數(shù)組元素的順序分配初始值,例如:int a23=1,2,3,4,5,6;3.給一些元素賦值,根據(jù)行賦值更直觀,比如:int a23=2,5,3;4.當(dāng)所有元素被賦值時(shí),第一維下標(biāo)可以省略,例如:int a 3=1,2,3,4,5,6;另一個(gè)例子:int a 4=0,0,3,0,0,10;7.2.4二維數(shù)組程序示例T7-4交換一個(gè)二維數(shù)組的行和列元素,并將它們存儲(chǔ)在另一個(gè)二維數(shù)組中。T7-4.c行和列交換主()的兩個(gè)數(shù)組,int a23=1,2,3,4,5,6;int b

10、32,I,j;printf( array a :n );對(duì)于(I=0;I=1;I)對(duì)于(j=0;j=2;(j ) printf(M ,共同執(zhí)行活動(dòng));bji=聯(lián)合執(zhí)行活動(dòng);printf(n );printf(“數(shù)組b :n”);對(duì)于(I=0;I=2;I)對(duì)于(j=0;j=1;(j ) printf(M ,bij);printf( n );例如,T7-5.c具有3 4矩陣,并且獲得最大元素所在的行號(hào)和列號(hào)main() int i,j,r=0,c=0,max。int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00對(duì)于(I=0;imax)最大值=aijr=I;c=j

11、printf(max=%d,row=%d,colum=% dn ,max,r,c);運(yùn)行結(jié)果:max=10,row=2,column=1問題:為什么要在比較之前將a00分配給max?7.3字符數(shù)組字符數(shù)組:用于存儲(chǔ)字符數(shù)據(jù)。一維字符數(shù)組:存儲(chǔ)一個(gè)字符串(每個(gè)數(shù)組元素存儲(chǔ)一個(gè)字符)二維字符數(shù)組:存儲(chǔ)多個(gè)字符串(行數(shù)是字符串的個(gè)數(shù))7.3.1字符數(shù)組的定義形式:字符數(shù)組名稱常量表達(dá)式字符數(shù)組名稱常量表達(dá)式常量表達(dá)式:整數(shù)、字符、符號(hào)常量。示例:char a5a0=攝氏度;a1=H;a2=I;a3=N;a4=A;7.3.2字符數(shù)組的初始化,如:字符a5=C,H,I,N,A;碳b5=碳、氫、碘、氮、鎢

12、、鈾;在編譯時(shí),會(huì)指出有太多的初始化值,字符c5=C,H,I;字符d=c,h,I,n,a。系統(tǒng)自動(dòng)確認(rèn)長(zhǎng)度為5,7.3.3的參考示例T7-6.c,并輸出字符串Main()字符C10=I,_,a,m,_,h,a,p,p,y;int I;對(duì)于(I=0;i10I)printf(“% c”,ci);打印(“n”);運(yùn)行結(jié)果:我很高興,T7-7。c輸出DIA圖形main () chardiamond5=,*,*,*,*;int I;int j;對(duì)于(I=0;i5;I)對(duì)于(j=0;j5;j ) printf(%c,diamondij);printf(n);7.3.4字符串上的注釋和字符串的結(jié)束符號(hào):(1

13、)字符串:用雙引號(hào)括起來的幾個(gè)字符,可以存儲(chǔ)在一維或二維字符數(shù)組中。(2)字符串的結(jié)束符號(hào)是:0(既不是動(dòng)作也不是顯示)(3)字符串的長(zhǎng)度:第一個(gè)0之前的字符數(shù);(4)當(dāng)在字符數(shù)組或字符串中發(fā)現(xiàn)0時(shí),該字符被視為結(jié)束;(5)字符串可以初始化字符數(shù)組,如char c= I _ am _ happy系統(tǒng)自動(dòng)將0添加到數(shù)組的末尾,長(zhǎng)度為11或char c= I _ am _ happy系統(tǒng)自動(dòng)在長(zhǎng)度為11的數(shù)組末尾添加0,相當(dāng)于c=I,_,a,m,_,h,a,p,p,y,0;CharC10=中國(guó)注意:字符0不總是在字符數(shù)組后面,輸出時(shí)前0結(jié)束;示例T7-7-1.c主()字符a=a,b,0,1,2;c

14、har b= ab 0cdprintf (%s n%s n ,a,b);運(yùn)行結(jié)果:a b a b,7.3.5字符數(shù)組1的輸入和輸出。字符數(shù)組的輸出:示例T7-7-2 . c main()int I;char a10=“中國(guó)”;char b18=中國(guó)0中國(guó)0中國(guó);對(duì)于(I=0;i10I)printf(“% c”,ai);printf( n );printf (%s n ,a);對(duì)于(I=0;i18I)printf(“% c”,bi);printf( n );printf (%sn ,b);運(yùn)行結(jié)果:China China _ China China _ China China,注意:(1)以%

15、s格式輸出時(shí),當(dāng)?shù)谝粋€(gè)0;(2)以% C格式輸出時(shí),按指定長(zhǎng)度輸出,滿足0時(shí)輸出;(3)以% s格式輸出字符數(shù)組元素時(shí),如printf (%s ,a2);雖然編譯時(shí)沒有錯(cuò)誤,但是輸出的是不確定的字符,所以這里必須是一個(gè)數(shù)組名;2.字符數(shù)組的輸入形式:scanf ( %s ,a);其中:a是已定義的字符類型的數(shù)組名,在字符的數(shù)組名前不加地址運(yùn)算符scanf (%s% s ,a1,a2,a3);printf(“a1=% s Na2=% s na3=% s n”,a1,a2,a3);printf(,printf(,printf(,description:(1)當(dāng)使用scanf函數(shù)輸入多個(gè)字符串時(shí),它們可以用_,制表符分隔。(2)在printf函數(shù)中,使用%s打印字符數(shù)組的內(nèi)容;使用%x或%o打印字符數(shù)組的地址。輸入:你好嗎?輸出:a1=怎么樣,a2=怎么樣,a3=你怎么樣?char a2=中國(guó)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論