freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

吉林大學(xué)康輝高級(jí)程序設(shè)計(jì)語言一第七章(已修改)

2025-01-28 15:33 本頁(yè)面
 

【正文】 第七章 數(shù)組和指針 數(shù)組 : 是按一定格式排列起來的一系列具有同一屬性的項(xiàng)目 。 例如 : 向量 、 矩陣 、 立體矩陣等 。 a11 a12 a13 a21 a22 a23 a31 a32 a33 數(shù)組名 : 表示群體的共性 (具有同一種數(shù)據(jù)類型 ) 下標(biāo) : 表示個(gè)體的個(gè)性 (各自占有獨(dú)立的單元 ) 數(shù)組及數(shù)組元素 一維數(shù)組 一維數(shù)組的定義方式: 類型說明符 數(shù)組名 [常量表達(dá)式 ]; 數(shù)組名遵循標(biāo)識(shí)符命名規(guī)則 常量表達(dá)式表示元素的個(gè)數(shù) , 即數(shù)組長(zhǎng)度 。 例如: int a[10]; 數(shù)組元素的表示形式:數(shù)組名 [下標(biāo) ] 其中 , 下標(biāo):是整型常量或整型表達(dá)式 。 對(duì)于任何數(shù)組 , 下標(biāo)都從 0開始 。 [例 ]用氣泡法完成對(duì) 10個(gè)數(shù)從小到大排序 。 第一趟掃描找到了最小的數(shù)存入 a[0],其過程如下: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 4 5 3 1 2 6 9 7 8 0 4 5 3 1 2 6 9 0 7 8 7 0 8 4 5 3 1 2 6 0 9 7 8 9 00 8 4 5 3 1 2 6 0 9 7 8 0 6 9 7 8 4 5 3 1 2 0 6 9 7 8 0 2 6 9 7 8 4 5 3 1 0 2 6 9 7 8 0 1 2 6 9 7 8 4 5 3 0 1 2 6 9 7 8 0 3 1 2 6 9 7 8 4 5 0 3 1 2 6 9 7 8 0 5 3 1 2 6 9 7 8 4 0 5 3 1 2 6 9 7 8 0 4 5 3 1 2 6 9 7 8a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a [ 1 0 ]4 5 3 1 2 6 9 7 8 0a[0] 第二趟掃描找到第二小的數(shù)存入 a[2], 直到第九趟掃描 , 便可找到最大的數(shù)存入 a[10], 其過程如下: a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 0 1 4 5 3 2 6 7 9 8 0 1 2 4 5 3 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 a[1] a[2] a[3] 3 a[4] 4 a[5] 5 a[6] 6 a[7] 7 a[8] 8 a[9] main() { int a[11],i,j,t。 printf(“input ten numbers:\n”)。 for(i=1。i11。i++) scanf(“%d”,amp。a[i])。 printf(“\n”)。 for(i=1。i10。i++) for(j=10。ji。j) if(a[j1]a[j]) { t=a[j]。a[j]=a[j1]。a[j1]=t。} printf(“the sorted numbers:\n”)。 for(i=0。i11。i++) printf(“%d”,a[i])。 } 上述程序有許多值得改進(jìn)的地方 。 (1)在 9趟由底向上的掃描中 , 可能最后幾趟已無任何交換發(fā)生 , 程序應(yīng)能做到 , 一旦發(fā)現(xiàn)某趟掃描中無任何交換時(shí)就會(huì)終止; (2)在每趟掃描中 , 上趟掃描中最后一次交換的位置 k是至關(guān)重要的 , 因?yàn)楫?dāng) jk時(shí) , 將再也沒有任何交換發(fā)生 , 從而應(yīng)該在此結(jié)束此趟掃描; (3)為使算法具有對(duì)稱性 , 掃描的方向有兩種可能的選擇 , 一是使輕氣泡 上浮 , 一是使重氣泡 下沉 。 例:用選擇法排序。即先將 10個(gè)數(shù)中最小的數(shù)與 a[0]對(duì)換;再將a[1]到 a[9]中最小的數(shù)與 a[1]對(duì)換;每比較一輪,找出一個(gè)未經(jīng)排序的數(shù)中最小的一個(gè)。共應(yīng)比較 9輪。 int a[10],i,j,k,t。 初始化數(shù)組 i=0。i9。 k=i。 j=i+1。j9。 a[j]a[k]? Y N k=j t=a[k]。a[k]=a[i]。a[i]=t。 共比 9輪 記住該換的位置 尋找第 k小的數(shù) a[j] 二維數(shù)組 二維數(shù)組的一般定義形式為 : 類型說明符 數(shù)組名 [常量表達(dá)式 ][常量表達(dá)式 ]。 例如 :float a[3][4]。 二維數(shù)組元素的表示形式為: 數(shù)組名 [下標(biāo) 1][下標(biāo) 2] 下標(biāo) 1:稱為行下標(biāo) /下標(biāo) 2:稱為列下標(biāo) a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] [例 ]將 4 4的矩陣轉(zhuǎn)置并輸出。 main() {float a[4][4],t。 int i,j for(i=0。i4。i++) for(j=0。j4。j++) scanf(“%f”,amp。a[i][j])。 for(i=1。i4。i++) for(j=0。ji。j++) {t=a[i][j]。a[i][j]=a[j][i]。 a[j][i]=t。} for(i=0。i4。i++) {for(j=0。j4。j++) printf(“%f”,a[i][j])。 printf(“\n”)。} } 多維數(shù)組 多維數(shù)組:多于二維的數(shù)組 。 多維數(shù)組的定義 、 數(shù)組元素的引用:與二維數(shù)組類似 , 只是需要相應(yīng)維數(shù)的下標(biāo) 。 例如 : int cube[5][6][4]。 /*三維數(shù)組 */ float data[3][4][9][2]。/*四維數(shù)組 */ cube[0][1][3]=20。 data[1][0][5][1]=。 ; 行 進(jìn)行; 首元素地址 。 對(duì)于一維數(shù)組而言 , 各元素按下標(biāo)次序依次存放 , 如 a[0], a[1], a[2], … 等等 。 且有: amp。a[0]: amp。a[1]: amp。a[2]: 數(shù)組的存儲(chǔ)表示 數(shù)組中任一元素 a[i]的地址可表示為: amp。a[i]=a+i*sizeof(元素類型 ) 其中 sizeof(元素類型 ):求每個(gè)元素占用存儲(chǔ)空間的字節(jié)數(shù)。例如:char ch[10]。int a[10]。 設(shè) ch=FFE0, a=FFEA 則 amp。ch[0]=FFE0+0*1=FFE0 amp。a[0]=FFEA+0*2=FFEA amp。ch[1]=FFE0+1*1=FFE1 amp。a[1]=FFEA+1*2=FFEC ┇ ┇ amp。ch[9]=FFE0+9*1=FFE9 amp。a[9]=FFEA+9*2=FFFC C語言不對(duì)下標(biāo)是否越界進(jìn)行檢查,C語言編譯程序?qū)?shí)際指向分配給數(shù)組 x的存儲(chǔ)空間以外的存儲(chǔ)區(qū)域。 數(shù)組的存儲(chǔ)表示 二維數(shù)組 :按行存放 例如: int x[2][3]/*它有 2 3個(gè)數(shù)組元素 */ x[0][0] x[0][1] x[0][2] x[1][0] x[1][1] x[1][2] 其存儲(chǔ)分配順序?yàn)椋? x[0][0]?x[0][1] ? x[0][2] ? x[1][0] ? x[1][1] ? x[1][2] amp。x[0][0] amp。x[0][1] amp。x[0][2] amp。x[1][0] amp。x[1][1] amp。x[1][2] 占 2*3*2=12個(gè)字節(jié) C中的二維數(shù)組可以看作是一種特殊的一維數(shù)組 。 例如 float a[3][4]。 a[0] a[0][0] a[0][1] a[0][2] a[0][3] a a[1] a[1][0] a[1][1] a[1][2] a[1][3] a[2] a[2][0] a[2][1] a[2][2] a[2][3] 二維數(shù)組元素 a[i][j]的地址可以這樣得到: amp。a[i][j]=a[i]+j*sizeof(a[0][0]) =a+i*sizeof(a[0])+j*sizeof(a[0][0]) =a+i*16+j*4 例: amp。a[1][2]=a+1*16+2*4=a+24 數(shù)組的存儲(chǔ)表示 多維數(shù)組元素在內(nèi)存中的排序順序?yàn)椋旱谝痪S的下標(biāo)變化最慢 , 最右邊的下標(biāo)變化最快 。 例如 , float a[2][3][4]。 a[0][0][0]→a[0][0][1]→a[0][0][2]→a[0][0][3]→ a[0][1][0]→a[0][1][1]→a[0][1][2]→a[0][1][3]→ a[0][2][0]→a[0][2][1]→a[0][2][2]→a[0][2][3]→ a[1][0][0]→a[1][0][1]→a[1][0][2]→a[1][0][3] a[1][1][0]→a[1][1][1]→a[1][1][2]→a[1][1][3] a[1][2][0]→a[1][2][1]→a[1][2][2]→a[1][2][3] ?給出三維數(shù)組數(shù)組元素的地址計(jì)算公式。 數(shù)組的初始化 C語言規(guī)定只有靜態(tài)存儲(chǔ)類( static)和外部存儲(chǔ)類( extern)的數(shù)組才能初始化。例如: static int a[10]={0,1,2,3,4,5,6,7,8,9}。 這里必須將各數(shù)組元素的初值放在一對(duì)花括號(hào)內(nèi)。編譯程序按數(shù)組元素的存放順序依次對(duì)其賦值。 也可以對(duì)數(shù)組中的部分元素初始化 , 對(duì)靜態(tài)數(shù)組而言 ,沒有初始化的數(shù)組元素 , 系統(tǒng)會(huì)將它自動(dòng)置 0。 在對(duì)全部數(shù)組元素初始化時(shí),可以不指定數(shù)組的長(zhǎng)度。例如: static int a[5]={1,2,3,4,5}。 可以寫成: static int a[]={1,2,3,4,5}。 在第二種寫法中 , 花括號(hào)中有 5個(gè)數(shù) , 系統(tǒng)就會(huì)據(jù)此自動(dòng)定義數(shù)組 a的長(zhǎng)度是 5。 若是二維數(shù)組 。 則在定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定 , 但第二維的長(zhǎng)度不能省略 . 數(shù)組的初始化 對(duì)二維數(shù)組的初始化可以分行進(jìn)行 , 如: static int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}。 static int a[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}。 另一種辦法是將所有數(shù)據(jù)寫在一個(gè)花括號(hào)內(nèi),如: static int a[3][
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1