資源描述:
《數(shù)組指針與結(jié)構(gòu)體ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C++程序設(shè)計第一部分:C++程序設(shè)計語言基礎(chǔ)第五章數(shù)組、指針與結(jié)構(gòu)體第五章數(shù)組、指針與結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體指針引用5.1數(shù)組數(shù)組是一種重要的數(shù)據(jù)結(jié)構(gòu)。在一個數(shù)組中可以保存多個元素的值。這些元素的數(shù)據(jù)類型是相同的,他們在內(nèi)存中的位置也是相鄰的。數(shù)組采用同一的命名機制。數(shù)組中的每個元素有一個序號,稱為下標(biāo),表示元素在數(shù)組中的位置。數(shù)組的下標(biāo)從0開始。數(shù)組可以有多個下標(biāo),或者說可以有多個維度的數(shù)組。例如:某地區(qū)的一周中每天最高氣溫值可以保存在一個數(shù)組中,并把這個數(shù)組取名為temp,該數(shù)組包含7個元素,表示
2、如下:temp[0]=24;//數(shù)組中的第一個元素,下標(biāo)從0開始temp[1]=21;temp[2]=20;temp[3]=20;temp[4]=17;temp[5]=22;temp[6]=21;//數(shù)組中有7個元素,下標(biāo)的范圍是0~65.1.1數(shù)組的聲明和初始化數(shù)組需要先定義后使用聲明數(shù)組格式:例如:stringname[5];//聲明一維數(shù)組name,由5個string型變量構(gòu)成floatscore[4][6];//聲明二維數(shù)組score,由24個flaot型變量構(gòu)成類型說明符數(shù)組名[常量表達式
3、1][常量表達式2];進一步解釋:聲明數(shù)組時使用的“[]”與數(shù)組元素的“[]”是不同的。在聲明數(shù)組時[]指明了數(shù)組的元素的個數(shù),或者說數(shù)組的長度;而數(shù)組元素的下標(biāo)從0開始取值,最大值是數(shù)組長度減1??梢月暶魅我鈹?shù)據(jù)類型的數(shù)組。聲明數(shù)組名的規(guī)則與變量名相同,遵循標(biāo)識符命名規(guī)則。聲明數(shù)組時,常量表達式可以包含常量和符號常量,但必須是整數(shù),不能包含變量。也就是說不允許對數(shù)組進行動態(tài)定義。5.1.1數(shù)組的聲明和初始化數(shù)組的初始化聲明數(shù)組時可以給出數(shù)組元素的值,稱為數(shù)組的初始化。數(shù)組的初始化與簡單變量的初始化
4、類似。初值放在一對花括號中,各初值之間用逗號隔開。例如對一維數(shù)組進行初始化:intweight[3]={7,19,9};等價于:intweight[6];weight[0]=7;weight[1]=19;weight[2]=9;進一步解釋:對一維數(shù)組的全部元素初始化時,可以不指定數(shù)組元素的個數(shù)。也可以只對一維數(shù)組中的部分元素進行初始化操作,這時要說明數(shù)組元素的個數(shù)。也可以初始化二維數(shù)組中的部分元素。初始化二維數(shù)組時,如果對中間行不賦值,對應(yīng)的花括號不能省略。初始化二維數(shù)組時,可以省略第一維的長度。系
5、統(tǒng)會根據(jù)數(shù)據(jù)的個數(shù)和第二維的長度計算出第一維的長度,并以此分配存儲空間。5.1.2引用數(shù)組元素引用數(shù)組元素是通過數(shù)組元素的下標(biāo)實現(xiàn)的。通常引用全體數(shù)組元素可以使用for語句完成。引用二維數(shù)組的全體元素可以通過嵌套循環(huán)語句實現(xiàn)。通??梢允褂猛鈱友h(huán)變量控制數(shù)組的第一維下標(biāo),內(nèi)層循環(huán)變量控制數(shù)組的第二維下標(biāo)。例【5-1】假設(shè)有6名學(xué)生參加某項比賽,比賽共進行三輪,每一輪6名學(xué)生都要參加,都有成績,最終取每名學(xué)生的三輪比賽中的最好成績作為比賽的結(jié)果,并將他們的最好成績進行排序。編寫程序?qū)崿F(xiàn)這一過程。#in
6、cludeusingnamespacestd;intmain(){//聲明score[6][3]二維數(shù)組,每一行保存各名學(xué)生的三輪比賽成績//聲明max[6]數(shù)組,保存每名學(xué)生的最好成績floatscore[6][3],max[6];inti,j;//按列輸入每輪比賽學(xué)生的成績for(i=0;i<3;i++){cout<<"請輸入第"<>score[j][i];}}//將學(xué)生的所有比賽成績輸出cou
7、t<<"6名學(xué)生的各輪比賽成績:"<8、ut<<"第"<