版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度家居建材銷(xiāo)售擔(dān)保合同范本正規(guī)范
- 2025版汽車(chē)租賃與售后服務(wù)合同范本2篇
- 遂寧木紋鋁扣板施工方案
- 二零二五年度個(gè)人購(gòu)房合同房屋租賃權(quán)轉(zhuǎn)售協(xié)議4篇
- 二零二五版住宅小區(qū)租戶(hù)管理及公共設(shè)施維護(hù)協(xié)議3篇
- 二零二五版變電設(shè)備安裝施工分包合同規(guī)范范本6篇
- 二零二五年度個(gè)人教育貸款擔(dān)保服務(wù)協(xié)議
- 二零二五年度城市快速路停車(chē)場(chǎng)投資建設(shè)合同樣本3篇
- 二零二五年度跨境電商物流配送合作協(xié)議書(shū)3篇
- 二零二五年度大數(shù)據(jù)行業(yè)個(gè)人勞動(dòng)合同規(guī)范2篇
- 《縣域腫瘤防治中心評(píng)估標(biāo)準(zhǔn)》
- 做好八件事快樂(lè)過(guò)寒假-2024-2025學(xué)年上學(xué)期中學(xué)寒假家長(zhǎng)會(huì)課件-2024-2025學(xué)年高中主題班會(huì)課件
- (八省聯(lián)考)云南省2025年普通高校招生適應(yīng)性測(cè)試 物理試卷(含答案解析)
- 調(diào)解行業(yè)可行性分析報(bào)告
- 科創(chuàng)板知識(shí)題庫(kù)試題及答案
- 《血管活性藥物靜脈輸注護(hù)理》團(tuán)體標(biāo)準(zhǔn)解讀
- 護(hù)理急性支氣管炎
- GB/T 19668.7-2022信息技術(shù)服務(wù)監(jiān)理第7部分:監(jiān)理工作量度量要求
- 品管圈活動(dòng)提高氧氣霧化吸入注意事項(xiàng)知曉率
- 連續(xù)鑄軋機(jī)的工作原理及各主要參數(shù)
- 幼兒園中班健康:《小河馬的大口罩》 課件
評(píng)論
0/150
提交評(píng)論