版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)( 下下 )主講:袁寧主講:袁寧計(jì)算機(jī)軟件教研室計(jì)算機(jī)軟件教研室郵箱地址郵箱地址: ise_第1講 二維數(shù)組二維數(shù)組復(fù)習(xí):一維數(shù)組復(fù)習(xí):一維數(shù)組(1) (1) 一維數(shù)組的定義一維數(shù)組的定義(2) (2) 一維數(shù)組的應(yīng)用一維數(shù)組的應(yīng)用新內(nèi)容:新內(nèi)容:(1) (1) 二維數(shù)組的定義二維數(shù)組的定義(2) (2) 二維數(shù)組的引用二維數(shù)組的引用(3) (3) 二維數(shù)組的初始化二維數(shù)組的初始化(4) (4) 二維數(shù)組的程序舉例二維數(shù)組的程序舉例二、數(shù)組的概念二、數(shù)組的概念1. 數(shù)組數(shù)組: :由具有相同類型的固定數(shù)量的元素組成的集合由具有相同類型的固定數(shù)量的元素組成的集合2. 數(shù)組元
2、素?cái)?shù)組元素: 每一個(gè)數(shù)組元素都是一個(gè)變量每一個(gè)數(shù)組元素都是一個(gè)變量, 為了與為了與 一般的變量相區(qū)別一般的變量相區(qū)別,我們稱數(shù)組元素為我們稱數(shù)組元素為下標(biāo)變量下標(biāo)變量3.下標(biāo)變量在數(shù)組中的位置序號(hào)稱下標(biāo)變量在數(shù)組中的位置序號(hào)稱下標(biāo)下標(biāo) 下標(biāo)變量的數(shù)據(jù)類型稱為下標(biāo)變量的數(shù)據(jù)類型稱為下標(biāo)類型下標(biāo)類型(或元素類型或元素類型)7.1 一維數(shù)組的引出及使用一維數(shù)組的引出及使用三、一維數(shù)組的定義三、一維數(shù)組的定義 1. 格式格式 : 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式 ; 例例: int a10 ; 2. 說(shuō)明說(shuō)明 (1) 數(shù)組的類型實(shí)際上是指數(shù)組元素的數(shù)組的類型實(shí)際上是指數(shù)組元素的
3、 取值類型。取值類型。對(duì)于同一個(gè)數(shù)組,所有對(duì)于同一個(gè)數(shù)組,所有 元素的數(shù)據(jù)類型都是相同的。元素的數(shù)據(jù)類型都是相同的。 84 : 66 80 95101010121014 :1028a0a1a2 :a9(2) 數(shù)組名是用戶定義的標(biāo)識(shí)符數(shù)組名是用戶定義的標(biāo)識(shí)符, 數(shù)組名表示了一個(gè)存儲(chǔ)區(qū)的首地址數(shù)組名表示了一個(gè)存儲(chǔ)區(qū)的首地址 (即第一個(gè)數(shù)組元素的地址即第一個(gè)數(shù)組元素的地址) 例例: 一個(gè)變量一個(gè)變量x的地址可以用的地址可以用&x來(lái)表示來(lái)表示 一個(gè)數(shù)組一個(gè)數(shù)組a的地址就用數(shù)組名的地址就用數(shù)組名a來(lái)表示來(lái)表示, a等價(jià)于等價(jià)于&a07.1 一維數(shù)組的引出及使用一維數(shù)組的引出及使用2. 說(shuō)
4、明說(shuō)明(3) 數(shù)組長(zhǎng)度數(shù)組長(zhǎng)度 : 指數(shù)組中元素的個(gè)數(shù)指數(shù)組中元素的個(gè)數(shù)(4) 數(shù)組元素的數(shù)組元素的下標(biāo)由零開始下標(biāo)由零開始 例例: int a10 中中 a 有有10個(gè)元素個(gè)元素, 所以數(shù)組長(zhǎng)度為所以數(shù)組長(zhǎng)度為10, 數(shù)組元素分別是數(shù)組元素分別是: a0 , a1 a8, a9(5) 常量表達(dá)式中不能包含變量常量表達(dá)式中不能包含變量, 其值也不能是實(shí)數(shù)其值也不能是實(shí)數(shù)int n;scanf(%d,&n);int an; int n=6;int an; int b8.5; #define SIZE 8int a2+3;float bSIZE;對(duì)對(duì)錯(cuò)錯(cuò)7.1 一維數(shù)組的引出及使用一維數(shù)組
5、的引出及使用四、數(shù)組元素的引用四、數(shù)組元素的引用1. 引用形式引用形式 : 數(shù)組名數(shù)組名 下標(biāo)下標(biāo) 注意注意: 如果出現(xiàn)如果出現(xiàn) a5 = 72 ; 編譯時(shí)不會(huì)編譯時(shí)不會(huì)指出錯(cuò)誤指出錯(cuò)誤, 系統(tǒng)會(huì)將系統(tǒng)會(huì)將a4后下一個(gè)后下一個(gè)存儲(chǔ)單元存儲(chǔ)單元 賦值為賦值為72, 但這樣可能但這樣可能會(huì)破壞數(shù)組以外其他變量的值會(huì)破壞數(shù)組以外其他變量的值 84 75 66 80 9510101012101410161018a0a1a2a3a472a51020假設(shè)這個(gè)存儲(chǔ)空間是變量假設(shè)這個(gè)存儲(chǔ)空間是變量x的的, 實(shí)際上實(shí)際上a5是不存在的是不存在的, 如果執(zhí)行了如果執(zhí)行了a5=72, 會(huì)將會(huì)將x原有的正確數(shù)據(jù)覆蓋掉
6、原有的正確數(shù)據(jù)覆蓋掉2. 說(shuō)明說(shuō)明(1) 下標(biāo)可以是整型常量或整型表達(dá)式下標(biāo)可以是整型常量或整型表達(dá)式 如如: a1 , a2*3(2) 數(shù)組定義為數(shù)組定義為 int a5 , 數(shù)組長(zhǎng)度為數(shù)組長(zhǎng)度為5 而下標(biāo)在而下標(biāo)在0 - 4之內(nèi)之內(nèi), 即即a0 - a47.1 一維數(shù)組的引出及使用一維數(shù)組的引出及使用五、五、 一維數(shù)組的初始化一維數(shù)組的初始化1. 概念概念 : 在定義一維數(shù)組時(shí)對(duì)各元素指定初始值稱為在定義一維數(shù)組時(shí)對(duì)各元素指定初始值稱為 數(shù)組的初始化數(shù)組的初始化int a5 = 1 , 3 , 5 , 7 , 9 ;2. 說(shuō)明說(shuō)明 (1) 對(duì)數(shù)組的全體元素指定初值對(duì)數(shù)組的全體元素指定初值,
7、 初值用初值用 括起來(lái)括起來(lái), 數(shù)據(jù)之間用數(shù)據(jù)之間用 逗號(hào)分開。這種情況下逗號(hào)分開。這種情況下, 可以不指明數(shù)組的長(zhǎng)度可以不指明數(shù)組的長(zhǎng)度, 系統(tǒng)會(huì)根據(jù)系統(tǒng)會(huì)根據(jù) 內(nèi)數(shù)據(jù)的個(gè)數(shù)確定數(shù)組的長(zhǎng)度內(nèi)數(shù)據(jù)的個(gè)數(shù)確定數(shù)組的長(zhǎng)度 int a = 1 , 3 , 5 , 7 , 9 ;(2) 對(duì)數(shù)組中部分元素指定初值對(duì)數(shù)組中部分元素指定初值 ( 這時(shí)不能省略數(shù)組長(zhǎng)度這時(shí)不能省略數(shù)組長(zhǎng)度 ) int a5 = 1 , 3 , 5 ; (3) 使數(shù)組中的全部元素初始值都為使數(shù)組中的全部元素初始值都為 0 int a5 = 0, 0, 0, 0, 0 ; 簡(jiǎn)單的寫法簡(jiǎn)單的寫法: int a5= 0 ;7.1 一維
8、數(shù)組的引出及使用一維數(shù)組的引出及使用1357913500 逆序逆序#include#define N 10void main( ) int i, t; int aN=5,8,0,1,9,2,6,3,7,4 for(i=0; iN/2; i+) t=ai; ai=aN-1-i; aN-1-i=t; for( i=0; i=9; i+) printf(%3d , ai);例例: 使數(shù)組元素使數(shù)組元素a0a9的值逆序再輸出的值逆序再輸出7.1 一維數(shù)組的引出及使用一維數(shù)組的引出及使用 5 8 0 1 9 2 6 3 7 4a0a1a2a3a4a5a6a7a8a9a0a9457830a1a8a2a7
9、7.2.1 二維數(shù)組的定義二維數(shù)組的定義 1、概念、概念: 可以將二維數(shù)組看成一種特殊的一維數(shù)組可以將二維數(shù)組看成一種特殊的一維數(shù)組, 它它 的每一個(gè)元素都是類型相同的一維數(shù)組的每一個(gè)元素都是類型相同的一維數(shù)組, 這樣這樣 就形成一個(gè)二維數(shù)組就形成一個(gè)二維數(shù)組 。2、定義形式、定義形式 : 類型標(biāo)識(shí)符類型標(biāo)識(shí)符 數(shù)組名數(shù)組名 常量表達(dá)式常量表達(dá)式1 常量表達(dá)式常量表達(dá)式2 如如: int a34 ; a0a1a2a00a01a02 a037.2 二維數(shù)組的定義和引用二維數(shù)組的定義和引用3、存儲(chǔ)形式、存儲(chǔ)形式 : 數(shù)組的元素在內(nèi)存中是連續(xù)存放的數(shù)組的元素在內(nèi)存中是連續(xù)存放的 int a33 ;
10、數(shù)組數(shù)組a的存放形式如下的存放形式如下 : a10a11a12a20a21a22a00a01a02a00a01a02a10a11a12a20a21a22101010121014101610181020102210241026 7.2.2 二維數(shù)組的引用二維數(shù)組的引用 數(shù)組元素的表示形式數(shù)組元素的表示形式 : 數(shù)組名數(shù)組名 下標(biāo)下標(biāo)1 下標(biāo)下標(biāo)2 注意注意 : (1) 每個(gè)下標(biāo)都要用每個(gè)下標(biāo)都要用 括起來(lái)括起來(lái) 如如 a 2 1 不能寫成不能寫成 a 2,1 (2) 下標(biāo)不要超過(guò)定義的范圍下標(biāo)不要超過(guò)定義的范圍7.2 二維數(shù)組的引出及使用二維數(shù)組的引出及使用 1 2 3 4 5 6 7 8 9
11、10 11 127.2.3 二維數(shù)組的初始化二維數(shù)組的初始化 1、分行初始化、分行初始化 int a34= 1, 2, 3, 4 , 5, 6, 7, 8 , 9, 10, 11, 12 ; 第第1對(duì)對(duì) 內(nèi)的數(shù)據(jù)賦給第內(nèi)的數(shù)據(jù)賦給第1行數(shù)組元素行數(shù)組元素, 以此類推,以此類推,此方法較直觀此方法較直觀2、按數(shù)據(jù)的排列順序?qū)?shù)組元素賦初值、按數(shù)據(jù)的排列順序?qū)?shù)組元素賦初值 int a34=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12; 將數(shù)據(jù)依次賦給元素將數(shù)據(jù)依次賦給元素 a00 , a01 a23 注意注意: 此方法數(shù)據(jù)沒有明顯的界限此方法數(shù)據(jù)沒有明顯的界限, 當(dāng)
12、數(shù)據(jù)較多時(shí)容易出錯(cuò)當(dāng)數(shù)據(jù)較多時(shí)容易出錯(cuò)7.2 二維數(shù)組的引出及使用二維數(shù)組的引出及使用3、對(duì)數(shù)組的部分元素賦初值、對(duì)數(shù)組的部分元素賦初值 int a34=1, 2,3,0, 4; int a34=1,2,3,4,5,6;120030000400123456000000注意注意: 此方法對(duì)非此方法對(duì)非0元素較少時(shí)比較方便,不必將所有的元素較少時(shí)比較方便,不必將所有的0都都寫出來(lái),只需輸入少量數(shù)據(jù)。寫出來(lái),只需輸入少量數(shù)據(jù)。也可以只對(duì)某幾行元素賦也可以只對(duì)某幾行元素賦初初值值:int a34=1,5,6; int a34=1, ,9;1000560000001000000090004、對(duì)數(shù)組的全部
13、元素賦初值時(shí)、對(duì)數(shù)組的全部元素賦初值時(shí)可以省略第一維的長(zhǎng)度可以省略第一維的長(zhǎng)度 系統(tǒng)會(huì)根據(jù)數(shù)據(jù)的個(gè)數(shù)和第二維的長(zhǎng)度自動(dòng)求出系統(tǒng)會(huì)根據(jù)數(shù)據(jù)的個(gè)數(shù)和第二維的長(zhǎng)度自動(dòng)求出 第一維的長(zhǎng)度第一維的長(zhǎng)度數(shù)組數(shù)組a第一維長(zhǎng)度為第一維長(zhǎng)度為 3 數(shù)組數(shù)組b第一維長(zhǎng)度為第一維長(zhǎng)度為 4 int b 2= 1, 2, 3, 4, 5, 6, 7, 8 ;定義時(shí)也可以只對(duì)部分元素賦初值,而省略第一維定義時(shí)也可以只對(duì)部分元素賦初值,而省略第一維的長(zhǎng)度,但應(yīng)分行賦初值。的長(zhǎng)度,但應(yīng)分行賦初值。int a 4= 1, 2, 0, 3, 4 , 5 ;數(shù)組數(shù)組 int b42= 1, 2, 3, 4, 5, 6, 7, 8
14、 ; 等價(jià)于等價(jià)于120003405000#include void main( ) int i , j, row=0, col=0, max ; int a34=5,2,0,9,3,7,12,6,10,4,1,8; max=a00; for ( i=0; i3; i+ ) for ( j=0; jmax ) max=aij ; row=i ; col=j ; printf(“max=%dn”, max); printf(“max=a%d%dn”, row , col);例例: 找出矩陣中最大的數(shù)找出矩陣中最大的數(shù),并輸出其行號(hào)和列號(hào)并輸出其行號(hào)和列號(hào)max0row0col59301212輸出
15、輸出:max=12max=a1252093712610418a00 a01 a02 a03a0a1a27.2.4 二維數(shù)組的應(yīng)用二維數(shù)組的應(yīng)用#includevoid main( ) int a34, b43 , i , j ; for ( i=0 ; i3 ; i+ ) for ( j=0 ; j4 ; j+ ) scanf(“%d”, &aij ) ;37126104185209例例: 將一個(gè)矩陣進(jìn)行轉(zhuǎn)置將一個(gè)矩陣進(jìn)行轉(zhuǎn)置(即原來(lái)的行變?yōu)榱屑丛瓉?lái)的行變?yōu)榱?52093712610418輸入數(shù)組輸入數(shù)組a進(jìn)行矩陣轉(zhuǎn)置進(jìn)行矩陣轉(zhuǎn)置a02b20a21b12輸出數(shù)組輸出數(shù)組bfor ( i
16、=0 ; i3 ; i+ ) for (j=0 ; j4 ; j+) bji=aij;for ( i=0 ; i4 ; i+ ) for ( j=0 ; j3 ; j+ ) printf(“%5d”, bij) ; printf(“n”); 7.2.4 二維數(shù)組的應(yīng)用二維數(shù)組的應(yīng)用例例: 一個(gè)學(xué)習(xí)小組有一個(gè)學(xué)習(xí)小組有5個(gè)人個(gè)人, 每個(gè)人有三門課的考試成績(jī)每個(gè)人有三門課的考試成績(jī), 求每個(gè)人的總分和該學(xué)習(xí)小組各門課的平均成績(jī)。求每個(gè)人的總分和該學(xué)習(xí)小組各門課的平均成績(jī)。姓名姓名高數(shù)高數(shù)英語(yǔ)英語(yǔ)C語(yǔ)言語(yǔ)言總分總分Mary857888?John908091?Mike799284?Alex838680
17、?Karry877595?用一個(gè)二維數(shù)組用一個(gè)二維數(shù)組來(lái)存放成績(jī)來(lái)存放成績(jī) int s54;用一個(gè)一維數(shù)組用一個(gè)一維數(shù)組來(lái)存放來(lái)存放各門課各門課的平均的平均成績(jī)成績(jī)float a3;每個(gè)人三門課的成績(jī)是輸入的每個(gè)人三門課的成績(jī)是輸入的總分和各門課的平均成績(jī)是計(jì)算出來(lái)的總分和各門課的平均成績(jī)是計(jì)算出來(lái)的7.2.4 二維數(shù)組的應(yīng)用二維數(shù)組的應(yīng)用#includevoid main( ) int i, j, s54, sum; float a3; for(i=0; i5; i+) for(j=0; j3; j+) scanf(% %d, &sij); sij=si0+si1+si2; for(
18、j=0; j3; j+) sum=0; /注意賦初值的位置注意賦初值的位置 for(i=0; i5; i+) sum=sum+sij; aj=sum/5.0; (見下頁(yè)見下頁(yè))輸入一個(gè)學(xué)生輸入一個(gè)學(xué)生3門課的成績(jī)門課的成績(jī)計(jì)算總分計(jì)算總分對(duì)每一門課對(duì)每一門課(即每一列即每一列)進(jìn)行處理進(jìn)行處理: 先將每列的先將每列的5個(gè)成績(jī)累加求和個(gè)成績(jī)累加求和; 再再將總和除將總和除5, 得到每門得到每門課的平均分課的平均分?jǐn)?shù)組數(shù)組a保存每門保存每門課的平均分課的平均分二維數(shù)組二維數(shù)組s存放每個(gè)學(xué)生的成績(jī)存放每個(gè)學(xué)生的成績(jī)#includevoid main( ) for(i=0; i5; i+) for(j
19、=0; j4; j+) printf(%4d, sij); printf( n ); for(i=0; i3; i+) printf( %6.2f , ai); printf( n );控制輸出控制輸出5行行控制每行輸控制每行輸出出4個(gè)成績(jī)個(gè)成績(jī)輸出一行的輸出一行的4個(gè)個(gè)成績(jī)后再換行成績(jī)后再換行輸出結(jié)果輸出結(jié)果:_ _85_ _78_ _88_ 251_ _90_ _80_ _91_ 261_ _79_ _92_ _84_ 255_ _83_ _86_ _80_ 249_ _87_ _75_ _95_ 257_84.80_82.20_87.60思考題 假設(shè)兩維數(shù)假設(shè)兩維數(shù)組組a和和b表示兩個(gè)表
20、示兩個(gè)44矩陣,要矩陣,要求編寫程序?qū)删仃嚨某朔e存入另一個(gè)兩求編寫程序?qū)删仃嚨某朔e存入另一個(gè)兩維數(shù)組中并輸出。維數(shù)組中并輸出。 題目分析:題目分析:對(duì)于乘積矩陣的元素,有公對(duì)于乘積矩陣的元素,有公式式 ,其中的,其中的aik和和bkj分別是兩個(gè)分別是兩個(gè)被乘矩陣的元素。求出一個(gè)元素需要用一被乘矩陣的元素。求出一個(gè)元素需要用一個(gè)循環(huán),因此完成矩陣乘法需要用一個(gè)三個(gè)循環(huán),因此完成矩陣乘法需要用一個(gè)三重循環(huán)。重循環(huán)。nkkjikijbac1#include void main ( ) int a44=1,2,3,4, 5,6,7,8, 9,10,11,12,13,14,15,16; int b4
21、4=1,3,5,7, 5,8,7,1, 6,2,4,8,7,2,9,11; int c44; int i, j, k; double x; for(i=0; i4; i+) for(j=0; j4; j+) for(cij=0.0, k=0; k4; k+) cij= cij+aik*bkj; for(i=0; i4; i+) for(j=0; j4; j+) printf(”%f%c”, cij , j= =3 ? n : );課后作業(yè)(課本P153) 課后習(xí)題課后習(xí)題7.3: 求求3*3整型矩陣對(duì)角線元素之和。整型矩陣對(duì)角線元素之和。 課后習(xí)題課后習(xí)題7.6 : 輸出楊輝三角形輸出楊輝三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 楊輝三角:楊輝三角: 簡(jiǎn)單的說(shuō)一下就是兩個(gè)未知數(shù)和的冪次方運(yùn)算后的系數(shù)問(wèn)題,比如(簡(jiǎn)單的說(shuō)一下就是兩個(gè)未知數(shù)和的冪次方運(yùn)算后的系數(shù)問(wèn)題,比如(x+yx+y)的平方的平方=x=x
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 翻譯兼職合同
- 簡(jiǎn)式房屋買賣定金合同范本
- 詳見建設(shè)工程施工合同GF
- 紅酒運(yùn)輸資質(zhì)轉(zhuǎn)讓合同范本
- 車輛貨物運(yùn)輸合同
- 宅基地轉(zhuǎn)讓協(xié)議合同書
- 外賣訂單配送承包合同
- 正交薄壁孔音叉陀螺的設(shè)計(jì)和性能研究
- 極區(qū)弱觀測(cè)環(huán)境下的SINS-DVL-GNSS組合導(dǎo)航算法研究
- 2025年南寧貨運(yùn)從業(yè)資格證試題答題APP
- 再見深海合唱簡(jiǎn)譜【珠海童年樹合唱團(tuán)】
- 高中物理 選修1 第四章 光(折射反射干涉衍射偏振)(2024人教版)
- 《聚焦客戶創(chuàng)造價(jià)值》課件
- PTW-UNIDOS-E-放射劑量?jī)x中文說(shuō)明書
- 保險(xiǎn)學(xué)(第五版)課件全套 魏華林 第0-18章 緒論、風(fēng)險(xiǎn)與保險(xiǎn)- 保險(xiǎn)市場(chǎng)監(jiān)管、附章:社會(huì)保險(xiǎn)
- 許小年:淺析日本失去的30年-兼評(píng)“資產(chǎn)負(fù)債表衰退”
- 典范英語(yǔ)2b課文電子書
- 17~18世紀(jì)意大利歌劇探析
- β內(nèi)酰胺類抗生素與合理用藥
- 何以中國(guó):公元前2000年的中原圖景
- 第一章:公共政策理論模型
評(píng)論
0/150
提交評(píng)論