




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、12C的數(shù)的數(shù)據(jù)類型據(jù)類型基本類型基本類型整型整型字符型字符型實(shí)型實(shí)型(浮點(diǎn)型浮點(diǎn)型)枚舉類型枚舉類型構(gòu)造類型構(gòu)造類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型共用體類型共用體類型指針類型指針類型空類型空類型單精度型單精度型雙精度型雙精度型3一、數(shù)組的基本概念一、數(shù)組的基本概念二、一維數(shù)組二、一維數(shù)組三、二維數(shù)組三、二維數(shù)組四、字符數(shù)組四、字符數(shù)組4 數(shù)組是一種數(shù)組是一種構(gòu)造構(gòu)造數(shù)據(jù)類型。數(shù)據(jù)類型。 數(shù)組是數(shù)組是有序數(shù)據(jù)有序數(shù)據(jù)的集合。的集合。 數(shù)組中的每一個(gè)元素都屬于數(shù)組中的每一個(gè)元素都屬于同一數(shù)據(jù)類型同一數(shù)據(jù)類型。 用一個(gè)統(tǒng)一的用一個(gè)統(tǒng)一的數(shù)組名數(shù)組名和和下標(biāo)下標(biāo)唯一地確定數(shù)組中的元素。唯一地確
2、定數(shù)組中的元素。如:如: int s105一維數(shù)組的定義一維數(shù)組的定義格式格式類型說(shuō)明符類型說(shuō)明符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式舉例舉例int a10;整型表達(dá)式,表達(dá)式中可以整型表達(dá)式,表達(dá)式中可以使用符號(hào)常量。使用符號(hào)常量。6說(shuō)明說(shuō)明1. 數(shù)組名的命名規(guī)則應(yīng)遵循數(shù)組名的命名規(guī)則應(yīng)遵循標(biāo)識(shí)符的命名規(guī)則。標(biāo)識(shí)符的命名規(guī)則。2. 數(shù)組名后是數(shù)組名后是方括號(hào)方括號(hào),而非圓括號(hào)。,而非圓括號(hào)。標(biāo)識(shí)符只能由字母、數(shù)字、標(biāo)識(shí)符只能由字母、數(shù)字、下劃線組成。且第一個(gè)字符下劃線組成。且第一個(gè)字符 必須為字母或下劃線必須為字母或下劃線73. 常量表達(dá)式表示元素的個(gè)數(shù),即數(shù)組長(zhǎng)度。常量表達(dá)式表示元素的個(gè)數(shù),
3、即數(shù)組長(zhǎng)度。a0, a1, a2, a3, a4, a5, a6, a7, a8, a9注意注意: 下標(biāo)為小數(shù)時(shí)將自動(dòng)取整下標(biāo)為小數(shù)時(shí)將自動(dòng)取整. a5.2, a5.8等價(jià)于等價(jià)于a584. 常量表達(dá)式中可以包含常量和符號(hào)常量,不常量表達(dá)式中可以包含常量和符號(hào)常量,不能包含變量。能包含變量。#define N 10main()int aN, bN+10,C2+3;#define N 10main() int n=5;int an, bN+10,C2+3;95.5.數(shù)組名不能與其它變量名相同。數(shù)組名不能與其它變量名相同。main() int a; float a10; 6.6.允許在同一個(gè)類型說(shuō)
4、明中,說(shuō)明多個(gè)數(shù)組和多個(gè)變量。允許在同一個(gè)類型說(shuō)明中,說(shuō)明多個(gè)數(shù)組和多個(gè)變量。int a,b,c,d,k110,k220;10一維數(shù)組元素的引用一維數(shù)組元素的引用格式格式數(shù)組名數(shù)組名下標(biāo)下標(biāo)a0112. 數(shù)組元素只能數(shù)組元素只能逐個(gè)引用逐個(gè)引用。數(shù)組元素的引用與同類型的一。數(shù)組元素的引用與同類型的一般變量使用方式一樣。般變量使用方式一樣。int a10; /定義數(shù)組定義數(shù)組aa0=10; a2=a0*5; scanf(“%d”,&a5); printf(“%d”,a5);int a10; printf(“%d”,a); /一次引用整個(gè)數(shù)組一次引用整個(gè)數(shù)組a,錯(cuò)誤!錯(cuò)誤! 不能一次引用整
5、個(gè)數(shù)組。不能一次引用整個(gè)數(shù)組。1.1.數(shù)組元素通常也稱為數(shù)組元素通常也稱為下標(biāo)變量下標(biāo)變量, ,數(shù)組必須數(shù)組必須先定義,后使用先定義,后使用。說(shuō)明說(shuō)明12int i,a10;for (i=0; i=0; i-) printf(“%2d”,ai);3. 當(dāng)逐個(gè)使用數(shù)組中的每一個(gè)元素時(shí),通常借助當(dāng)逐個(gè)使用數(shù)組中的每一個(gè)元素時(shí),通常借助for循環(huán)語(yǔ)句。循環(huán)語(yǔ)句。9 8 7 6 5 4 3 2 1 0int i,a10;for (i=0; i=9; i+) ai=i; printf(%2d,ai); 0 1 2 3 4 5 6 7 8 912 13 14 15 16 17 18 19 20 21?13
6、4. 下標(biāo)可以是整型變量或整型表達(dá)式。 如:a0=a3*25.區(qū)分: int a10; t=a7;14一維數(shù)組的初始化一維數(shù)組的初始化格式格式 類型說(shuō)明符類型說(shuō)明符 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式 = =值,值值,值值值 ;int a10 = 0,1,2,3,4,5,6,7,8,9;15說(shuō)明說(shuō)明1. 定義數(shù)組時(shí),對(duì)數(shù)組元素賦初值。定義數(shù)組時(shí),對(duì)數(shù)組元素賦初值。2. 可以只給一部分?jǐn)?shù)組元素賦初值。可以只給一部分?jǐn)?shù)組元素賦初值。3. 要想使數(shù)組中全部元素?cái)?shù)據(jù)為要想使數(shù)組中全部元素?cái)?shù)據(jù)為0,則采用如下形式。,則采用如下形式。int a10=0,1,2,3,4,5,6,7,8,9;int a10=
7、0,1,2,3,4;int a10=0,0,0,0,0,0,0,0,0,0; 或或int a10=0; int a =0,1,2,3,4;4. 在對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度在對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度(元素的個(gè)數(shù))(元素的個(gè)數(shù))16 輸入輸入10個(gè)數(shù),并挑選出最大值。個(gè)數(shù),并挑選出最大值。main() int i,max; int a10; printf(input 10 numbers:n); for(i=0;i10;i+) scanf(%d,&ai); max=a0; for(i=1;imax) max=ai; printf(maxmum=%dn,m
8、ax);例例7-1一維數(shù)組程序舉例一維數(shù)組程序舉例17例例7-2#include stdio.hvoid main() int i; int f40=1,1; printf(%12d%12d,f0,f1); for (i=2;i40;i+) fi=fi-2+fi-1; if (i%5=0)printf(n); printf(%12d,fi); 求Fibonacci數(shù)列的前40個(gè)數(shù)18 例例7-3用冒泡法對(duì)用冒泡法對(duì)10個(gè)數(shù)排序。個(gè)數(shù)排序。(由小到大)(由小到大)void main() int a10; int i,j,t; printf(input 10 numbers:n); for (i=
9、0;i10;i+) scanf(%d,&ai); for (j=1;j=9;j+) for (i=0;iai+1) t=ai; ai=ai+1; ai+1=t; printf(the sorted numbers:n);for (i=0;i=0;i-) printf(%d ,ai); 或或 if (aiai+1)2)對(duì))對(duì)30個(gè)數(shù)排序?對(duì)個(gè)數(shù)排序?對(duì)60個(gè)數(shù)排序列?如何設(shè)計(jì)?個(gè)數(shù)排序列?如何設(shè)計(jì)? 20n#include stdio.hn#define N 30nvoid main()nint aN;n int i,j,t;n printf(input %d numbers:n,N);
10、n for (i=0;i=N-1;i+)n scanf(%d,&ai);n for (j=0;j=N-1;j+)n for (i=0;iai+1)n t=ai;n ai=ai+1;n ai+1=t; nprintf(the sorted numbers:n);nfor (i=0;i=N-1;i+)n printf(%d ,ai);n21二維數(shù)組的定義二維數(shù)組的定義格式格式類型說(shuō)明符類型說(shuō)明符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式1 常量表達(dá)式常量表達(dá)式2舉例舉例int a34;22說(shuō)明說(shuō)明1。二維數(shù)組中元素的排列順序是:。二維數(shù)組中元素的排列順序是:先行后列先行后列。 因此,可以把二維數(shù)組
11、看成是一個(gè)矩陣。因此,可以把二維數(shù)組看成是一個(gè)矩陣。2。二維數(shù)組元素仍然是從。二維數(shù)組元素仍然是從a00開(kāi)始。開(kāi)始。int a34; a00,a01,a02,a03 a10,a11,a12,a13 a20,a21,a22,a23233.二維數(shù)組可看成特殊的一維數(shù)組,它的元素又是一個(gè)一維數(shù)組。 數(shù)組a可看成一個(gè)一維數(shù)組,有三個(gè)元素: a0 a00,a01,a02,a03 a1 a10,a11,a12,a13 a2 a20,a21,a22,a23244.多維數(shù)組: 定義三維數(shù)組的方法: float a342;25二維數(shù)組元素的引用二維數(shù)組元素的引用格式格式數(shù)組名數(shù)組名下標(biāo)下標(biāo)1 下標(biāo)下標(biāo)2說(shuō)明說(shuō)明
12、1。數(shù)組必須先定義,后使用。數(shù)組必須先定義,后使用。26n2。數(shù)組元素只能逐個(gè)引用,而不能一次引用。數(shù)組元素只能逐個(gè)引用,而不能一次引用整個(gè)數(shù)組。數(shù)組元素的引用與同類型的一般整個(gè)數(shù)組。數(shù)組元素的引用與同類型的一般變量使用方式一樣。變量使用方式一樣。n下面的程序有什么問(wèn)題?下面的程序有什么問(wèn)題?int a23;a01=10; a23=a01*5;scanf(“%d”,&a11); printf(“%d”,a);27int i,j;float a45;for (i=0; i=3; i+) for (j=0; j=4; j+) scanf(“%d”,&aij);3.二維數(shù)組輸入二維數(shù)
13、組輸入/輸出的一般格式。輸出的一般格式。int i,j;float a45;for (i=0; i4; i+) for (j=0; j5; j+) printf(“%d”,aij); printf(”n”);28二維數(shù)組的初始化二維數(shù)組的初始化說(shuō)明說(shuō)明1。分行給二維數(shù)組賦初值。分行給二維數(shù)組賦初值。2。按數(shù)組的排列順序?qū)Ω鲾?shù)組元素賦初值。按數(shù)組的排列順序?qū)Ω鲾?shù)組元素賦初值。int a23=1,2,3,4,5,6;int b23=1,2,3,4,5,6;1 2 34 5 6 1 2 34 5 6 293.可以對(duì)部分元素賦初值。分行進(jìn)行。可以對(duì)部分元素賦初值。分行進(jìn)行。int c34=1,5,9;
14、4。在對(duì)全部數(shù)組元素賦初值時(shí),數(shù)組第一維的。在對(duì)全部數(shù)組元素賦初值時(shí),數(shù)組第一維的長(zhǎng)度可以不指定。長(zhǎng)度可以不指定。int e 3=1,2,3,4,5,6;int d34=1,5,6,0,9,7;int f 4=0,0,3,0,0,10; 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 1 0 0 0 5 0 0 0 9 0 0 0 30二維數(shù)組程序舉例二維數(shù)組程序舉例例例1將一個(gè)二維數(shù)組元素的行和列元素互換,存在另一將一個(gè)二維數(shù)組元素的行和列元素互換,存在另一個(gè)二維數(shù)組中。個(gè)二維數(shù)組中。31void main() int
15、b32,i,j,a23; printf(“input array a:n); for (i=0;i=1;i+) for (j=0;j=2;j+) scanf(%d,&aij);printf(array b:n); for (i=0;i=2;i+) for (j=0;j=1;j+) bij=aji; printf(%5d,bij); printf(n); 32void main()int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for (i=0;i=1;i+) for (j=0;j=2;j+) printf(%5d,aij); b
16、ji=aij; printf(n); printf(array b:n); for (i=0;i=2;i+) for (j=0;j=1;j+) printf(%5d,bij); printf(n); 33例例2有一個(gè)有一個(gè)3*4矩陣,輸出該矩陣并輸出最大元素的矩陣,輸出該矩陣并輸出最大元素的值,及其所在的行號(hào)和列號(hào)。值,及其所在的行號(hào)和列號(hào)。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;
17、colum=j; printf(%5d,aij); printf(n); printf( max=%d, row=%d,colum=%dn,max, row, colum);34例例3一個(gè)學(xué)習(xí)小組有一個(gè)學(xué)習(xí)小組有5個(gè)人,每個(gè)人有三門課的考試成績(jī)。個(gè)人,每個(gè)人有三門課的考試成績(jī)。求全組分科的平均成績(jī)和各科總平均成績(jī)。求全組分科的平均成績(jī)和各科總平均成績(jī)。 張張王王李李趙趙周周MathMath80806161595985857676C C75756565636387877777FoxFoxbase9292717170709090858535main() int i,j,s=0; float ave
18、rage,v3,a35; printf(input scoren); for(i=0;i3;i+) for(j=0;j5;j+) scanf(%f,&aij); s=s+aij; vi=s/5.0; s=0; average =(v0+v1+v2)/3; printf(m:%fn c la:%fn Fox :%fn,v0,v1,v2); printf(total:%fn, average );36【例例6】在二維數(shù)組在二維數(shù)組a中選出各行最大的元素組成一個(gè)一維數(shù)組中選出各行最大的元素組成一個(gè)一維數(shù)組b。a=( 3 16 87 65 4 32 11 108 10 25 12 37) b=
19、( 87 108 37 )思路思路:在數(shù)組在數(shù)組A A的每一行中尋找最大的元素,找到之后把該值賦予數(shù)組的每一行中尋找最大的元素,找到之后把該值賦予數(shù)組B B相應(yīng)的元素即可。相應(yīng)的元素即可。 37int a34; int b3,i,j,m; printf(array a:); for(i=0;i=2;i+) for(j=0;j=3;j+) scanf(%d,&aij); for(i=0;i=2;i+) m=ai0; for(j=1;jm) m=aij; bi=m; printf(narray b:n); for(i=0;i=2;i+) printf(%5d,bi); printf(n);
20、38n練習(xí):7.339(一)、(一)、字符數(shù)組字符數(shù)組(二)、(二)、字符串字符串40定義定義初始化初始化char c5=h,a,p,p,y;char c5;注意:注意:如果初值個(gè)數(shù)大于數(shù)組長(zhǎng)度,按語(yǔ)法錯(cuò)誤處理。如果初值個(gè)數(shù)大于數(shù)組長(zhǎng)度,按語(yǔ)法錯(cuò)誤處理。如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,只將這些字符賦給前面那元如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,只將這些字符賦給前面那元素,其余元素自動(dòng)賦空字符素,其余元素自動(dòng)賦空字符(0)??梢远x和初始化一個(gè)二維字符數(shù)組。可以定義和初始化一個(gè)二維字符數(shù)組。41引用引用main() int i; char c5=h,a,p,p,y; for (i=0;i1字符串字符串2 2,返
21、回值,返回值00; 字符串字符串11字符串字符串2 2,返回值,返回值00) printf(st1st2n); if(k0) printf(st1str2)/錯(cuò)!nIf (strcmp(str1,str2)0)/對(duì)!57#includestring.hmain() int k; char st=C language; k=strlen(st); printf(The lenght of the string is %dn,k);測(cè)字符串長(zhǎng)度函數(shù)測(cè)字符串長(zhǎng)度函數(shù)strlen格式格式: strlen(strlen(字符數(shù)組名字符數(shù)組名) )功能功能:測(cè)字符串的實(shí)際長(zhǎng)度:測(cè)字符串的實(shí)際長(zhǎng)度( (不含
22、不含字符串結(jié)束標(biāo)志字符串結(jié)束標(biāo)志00) ) 并作為函數(shù)返回值。并作為函數(shù)返回值。58轉(zhuǎn)換為大轉(zhuǎn)換為大小寫字母函數(shù)小寫字母函數(shù) Strupr strlwr#include stdio.h#include string.hmain()char str1 =HOW are YOU; printf(%sn,strlwr(str1); printf(%s,strupr(str1); 59 字符數(shù)組應(yīng)用舉例:60例:輸入例:輸入5個(gè)字符串,輸出其中長(zhǎng)度最大者。個(gè)字符串,輸出其中長(zhǎng)度最大者。#include main() char string20; char str520; int i; for (i=0;i=5;i+) gets(stri); string=str0; for (i=0;istring) string=stri; printf(the largest string is :%cn,string);思考:請(qǐng)找出程序中的錯(cuò)誤!61#include #include main() char string20; char str520
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ǔ)動(dòng)機(jī)自我系統(tǒng)、學(xué)業(yè)浮力與英語(yǔ)成績(jī)的關(guān)系研究
- 敘事舞蹈創(chuàng)作中藏族舞蹈元素的運(yùn)用
- 農(nóng)村合作改造合同范例
- 借款續(xù)借補(bǔ)充合同范例
- 出口苗木采購(gòu)合同范例
- 債權(quán)轉(zhuǎn)讓寫合同范例
- 共享拖掛式房車在旅游線路中的應(yīng)用研究
- 辦公窗簾定做安裝合同范本
- 辦公樓拆除施工方案
- 教科版六年級(jí)下冊(cè)科學(xué)第一單元《小小工程師》教材分析及全部教案(定稿;共7課時(shí))
- 小兒鋅缺乏癥剖析
- 古風(fēng)集市策劃方案
- 道路危險(xiǎn)貨物運(yùn)輸安全培訓(xùn)課件
- 社會(huì)工作綜合能力初級(jí)講義課件
- 青春期心理健康講座課件
- 《廣聯(lián)達(dá)培訓(xùn)教程》課件
- 兒童流感的防治和預(yù)防措施
- 美業(yè)招商課件
- 城市災(zāi)害學(xué)課件-地質(zhì)災(zāi)害(1)課件
- 面密度儀設(shè)備原理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論