




下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)動(dòng)營(yíng)養(yǎng)咨詢師崗位面試問題及答案
- 市場(chǎng)數(shù)據(jù)分析專家崗位面試問題及答案
- 江蘇省蘇州市第五中學(xué)校2025屆化學(xué)高二下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025屆四川省成都實(shí)驗(yàn)高級(jí)中學(xué)化學(xué)高一下期末統(tǒng)考模擬試題含解析
- 杭州禽類交易管理辦法
- 發(fā)票管理辦法開具發(fā)票
- 村鎮(zhèn)規(guī)劃果園管理辦法
- 區(qū)域醫(yī)師注冊(cè)管理辦法
- 核算崗位電價(jià)管理辦法
- 小區(qū)物業(yè)管理制度監(jiān)督考核方案
- 期末教師會(huì)議校長(zhǎng)精彩講話:最后講了存在的問題
- 知名連鎖漢堡店食安QSC稽核表
- 攝影設(shè)備采購(gòu)合同范例
- DB41T 1812-2019 蘋果簡(jiǎn)約栽培技術(shù)規(guī)程
- 【《三只松鼠公司員工激勵(lì)現(xiàn)狀調(diào)查及優(yōu)化建議(附問卷)14000字》(論文)】
- 護(hù)理不良事件登記本及護(hù)理不良事件報(bào)告新規(guī)制度
- 農(nóng)業(yè)土壤檢測(cè)技術(shù)行業(yè)發(fā)展前景及投資風(fēng)險(xiǎn)預(yù)測(cè)分析報(bào)告
- 廣東省深圳市羅湖區(qū)2023-2024學(xué)年二年級(jí)下學(xué)期期末考試數(shù)學(xué)試題
- 長(zhǎng)沙新華書店面試題目
- 秒懂藝術(shù)那些事智慧樹知到期末考試答案章節(jié)答案2024年商丘師范學(xué)院
- (中考試題)2024年浙江省湖州市中考數(shù)學(xué)真題-附解析
評(píng)論
0/150
提交評(píng)論