數(shù)組教學(xué)課件_第1頁(yè)
數(shù)組教學(xué)課件_第2頁(yè)
數(shù)組教學(xué)課件_第3頁(yè)
數(shù)組教學(xué)課件_第4頁(yè)
數(shù)組教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章數(shù)組

白雪飛

baixf@ustc.edu.cn

中國(guó)科學(xué)技術(shù)大學(xué)電子科學(xué)與技術(shù)系

Dept,ofElec.Sci.&Tech.,USTC

Fall,2003

目錄

?數(shù)組的概念

?一維數(shù)組

?二維數(shù)組

?字符數(shù)組

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組2

數(shù)組(Array)

?概念

■有序數(shù)據(jù)的集合

?說(shuō)明

■數(shù)組中的每一個(gè)元素都屬于同一數(shù)據(jù)類(lèi)型

■用統(tǒng)一的數(shù)組名和下標(biāo)來(lái)唯一的確定數(shù)組中

的元素

■數(shù)組元素的類(lèi)型可以是基本類(lèi)型或?qū)С鲱?lèi)型

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組3

一維數(shù)組

?一維數(shù)組的定義

?一維數(shù)組元素的引用

?一維數(shù)組的存儲(chǔ)形式

?一維數(shù)組的初始化

?一維數(shù)組程序舉例

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組4

一維數(shù)組的定義

?定義形式

■類(lèi)型數(shù)組名[常量表達(dá)式];

?說(shuō)明

■常量表達(dá)式表示數(shù)組的大?。ㄔ貍€(gè)數(shù))

■數(shù)組大小只能是常量,不能包含變量

■整型數(shù)組與整型是兩種不同的數(shù)據(jù)類(lèi)型

?舉例

■inta[100]zb[3*2];

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組5

一維數(shù)組元素的引用

?引用形式

■數(shù)組名[下標(biāo)]

?說(shuō)明

■下標(biāo)是整型表達(dá)式

■數(shù)組元素與同類(lèi)型的變量使用方法相同

■數(shù)組下標(biāo)范圍為O~N-1(N為數(shù)組長(zhǎng)度)

注意防止數(shù)組下標(biāo)越界

?舉例

■a[0]=a[5]+a[j]*3;

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組6

一維數(shù)組的存儲(chǔ)形式

?一維數(shù)組的元素在內(nèi)存中依次連續(xù)存儲(chǔ)

低地址

a[0]

am

chara[5];^[2]

^[3]

高地址

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組7

一維數(shù)組的初始化

?定義數(shù)組時(shí)對(duì)數(shù)組元素賦初值

■inta[5]={l,2,3,4,5};

?只給部分元素賦初值

■inta[5]={lA2A3};

■inta[5]={0};

■其余元素初值為零

?對(duì)全部元素賦初值時(shí),可以不指定長(zhǎng)度

■inta[]={l,2,3,4,5};

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組8

一維數(shù)組程序舉例

?Fibonacci數(shù)歹U

F1=F2=1

Fn=Fn7—+2Fn—\,('n>3)/

?冒泡排序法

.篩法求素?cái)?shù)

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組9

例1:Fibonacci數(shù)歹U(04-01.c)

#include<stdio.h>

voidmain()

(

inti,f[20]={l,1};

for(i=2;i<20;i++)

f[i]=f[i-2]+f[i-1];

)

c語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組10

,列2:目泡排序法(04-02.C)

?兩層循環(huán)結(jié)構(gòu)

■外層循環(huán)每次把操作

范圍內(nèi)最大的數(shù)放到

最后位置

■內(nèi)層循環(huán)每次把較大

的數(shù)放到靠后的位置

?確定每層循環(huán)的邊界

■外層循環(huán)n-l次

j=0ton-2

■內(nèi)層循環(huán):n-1-j次

i=0ton-2-j

例2:冒泡排序法(續(xù))

,列3:篩法求素?cái)?shù)(04-03.C)

234567891011121314151617181920

235713141520

2313141516171920

23713141516171920

235K713141516171920

236713141516171920

2313141516171920

231314151620

23457131415161720

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組13

例3:篩法求素?cái)?shù)(續(xù))

#defineMAX100

??????

for(i=2;i<MAX;i++)

s[i]=l;/*初始化,所有數(shù)都在篩子中*/

for(i=2;i<MAX;i++)

if(s[i])

for(m=2*i;m<MAX;m+=i)

s[m]=0;/*從篩子中篩去*/

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組14

二維數(shù)組

.二維數(shù)組的定義

?二維數(shù)組的存儲(chǔ)形式

?二維數(shù)組元素的引用

?二維數(shù)組的初始化

?二維數(shù)組與一維數(shù)組

?二維數(shù)組程序舉例

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組15

二維數(shù)組的定義

?定義形式

■類(lèi)型數(shù)組名[常量表達(dá)式][常量表達(dá)式];

■可以看作元素是一維數(shù)組的一維數(shù)組

?舉例

■chara[3][4];/*3行4列*/

a[0]a[0][0],a[0][1],a[0][2]Aa[0][3]

a=Ja[l]=a[l][0]za[l][1]fa[l][2]Aa[l][3]

a[2]=>a[2][0],a[2][1]Aa[2][2],a[2][3]

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組16

二維數(shù)組的存儲(chǔ)形式低地址

?按行存放,先行后列

chara[3][4];

MOHO]MOHUM0H2]原[0][升+)

(aH】【O】aH】【U力

高地址

C語(yǔ)言程序設(shè)計(jì)■?第4章數(shù)為

二維數(shù)組元素的引用

?表示形式

■數(shù)組名[下標(biāo)][下標(biāo)]

?說(shuō)明

■用法與一維數(shù)組元素類(lèi)似

注意避免下標(biāo)越界

■chara[3][4];

a[l][5]今a[2][1]

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組18

二維數(shù)組的初始化(1)

?分行給二維數(shù)組賦初值

■inta[3][4]={{1,2,3,4},1234

{5,6,7,8},5678

{9,10,11,12}};9101112

?對(duì)部分元素賦初值

■inta[3][4]={{1},{0,6},{9}};

■intb[3][4]={{1},{5,6}};

■intc[3][4]={{1},{},{O,O,11}};

100010001000

060056000000

9000000000110

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組19

二維數(shù)組的初始化(2)

?對(duì)全部元素賦初值時(shí),第一維長(zhǎng)度可以省略,

其他維長(zhǎng)度不能省略

■inta[][4]={{lz2,3,4},1234

{5,6,7,8},5678

{9,10,11,12}};9101112

?只對(duì)部分元素賦初值時(shí),第一維長(zhǎng)度也可以省

略,但是要用{}分行,即能夠判斷第一維長(zhǎng)度

■inta[][4]={{0,0,3},{},{0,10zll}};

-0030

0000

010110

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組20

二維數(shù)組與一維數(shù)組

?可以用一維數(shù)組描述二維數(shù)組

chara[2][3];chara[6];

a[i][j]

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組21

二維數(shù)組程序舉例

?矩陣乘法

夕-1

k=0

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組22

,列4:矩陣乘法(04-04.C)

inta[M][P]zb[P][N],c[M][N]={0};

??????

for(i=0;i<M;i++)

for(j=0;j<N;j++)

for(k=0;k<P;k++)

c[i][j]+=a[i][k]*b[k][j];

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組23

字符數(shù)組

?字符數(shù)組的使用

?字符數(shù)組與字符串

?字符數(shù)組的初始化

?字符串結(jié)束標(biāo)志

?字符串的輸入輸出

?字符串處理函數(shù)

?字符串程序舉例

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組24

字符數(shù)組的使用

?與其他類(lèi)型數(shù)組用法類(lèi)似

■chara[10];

■a[5]=ff1;a[7]=f\nf;a[9]=105;

■a[0]=a[3]*4-a[4];

!f11!!

■charc[]={aAffz\n;

?用作字符串變量

■字符串作為一維字符數(shù)組處理

■用字符數(shù)組名來(lái)引用字符串變量

■字符數(shù)組元素包括字符串結(jié)束標(biāo)志,\0,

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組25

字符數(shù)組與字符串

?字符串作為一維字符數(shù)組來(lái)處理

TT

■"China"■charstr[6]={hr

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組26

字符數(shù)組的初始化

?字符數(shù)組初始化的方法

■逐個(gè)字符賦值給各元素

■用字符串常量賦初值

?舉例

■chars[]={T,工,S,TJ\0,};

■chars[]={"TESTn};

■chars[]=HTESTn;

HH

■chars[][6]={ChinaA"Anhui”,

Hnnn

HefeifUSTC};

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組27

字符串結(jié)束標(biāo)志

?字符串結(jié)束標(biāo)志10,

■以10,作為判斷字符串結(jié)束的唯一標(biāo)志

■與存放字符串的字符數(shù)組的長(zhǎng)度無(wú)關(guān)

■所有字符串操作都以!\0,作為結(jié)束條件

■如果對(duì)字符數(shù)組每個(gè)元素分別賦值,并作為

字符串使用,必須在最后手工添加,\(r

■系統(tǒng)在字符串常量后自動(dòng)添加?\o,

?舉例

■chars[]={U,S,T,e,'\0‘};

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組28

字符串的輸入輸出

?整個(gè)字符串一次輸入輸出

■輸出到第一個(gè)結(jié)束,但不輸出10,

■輸入輸出時(shí),用一維字符數(shù)組名表示字符串

■格式化輸入時(shí),不需要在數(shù)組名前加y

■格式化輸入時(shí),空白字符表示輸入結(jié)束

■系統(tǒng)自動(dòng)添加10「不需要手工輸入

?逐個(gè)字符輸入輸出

■用于一些特殊情況,如需要輸入回車(chē)符

■getchar();putchar();

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組29

字符串輸入輸出舉例

charstr[]="China";

printf("%s",str);

n

scanf("%srstr);/*不用&str*/

charstr[2][6];

n

scanf("%s%srstr[O]rstr[1]);

/*一維字符數(shù)組*/

II!!!!T!

charstr[]={C,hrrnra};

HH

printf(%sAstr);/*得至1什么結(jié)果?*/

C語(yǔ)言程序設(shè)計(jì)-第4章數(shù)組30

字符串處理函數(shù)

函數(shù)原型說(shuō)明

puts(str)輸出字符串,輸出到ACT為止并換行

gets(str)輸入字符串,可輸入空白字符,回車(chē)結(jié)束

strcat(si,s2)字符串連接,si應(yīng)留有總夠的空間

strcpy(si,s2)字符串復(fù)制,si應(yīng)留有總夠的空間

strcmp(sirs2)字符串比較,依次按Ascn碼比較

strlen(str)字符串長(zhǎng)度,不包括結(jié)束標(biāo)志10,

strlwr(str)字符串小寫(xiě),不是標(biāo)準(zhǔn)庫(kù)函數(shù)

strupr(str)字符串

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論