二維數(shù)組簡單講解_第1頁
二維數(shù)組簡單講解_第2頁
二維數(shù)組簡單講解_第3頁
二維數(shù)組簡單講解_第4頁
二維數(shù)組簡單講解_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、二維數(shù)組簡單講解第一頁,共27頁。第二頁,共27頁。第三頁,共27頁。第四頁,共27頁。第五頁,共27頁。第六頁,共27頁。第七頁,共27頁。第八頁,共27頁。第九頁,共27頁。程序解析求矩陣中的最大值 將將1 1個個3 3* *2 2的矩陣存入的矩陣存入1 1個個3 3* *2 2的二維數(shù)組的二維數(shù)組中,找出最大值以及它的行下標(biāo)和列下標(biāo),中,找出最大值以及它的行下標(biāo)和列下標(biāo),并輸出該矩陣。并輸出該矩陣。 變量說明:變量說明:row row 記錄最大值的行下標(biāo)記錄最大值的行下標(biāo)col col 記錄最大值的列下標(biāo)記錄最大值的列下標(biāo)arowcol arowcol 即為最大值即為最大值第十頁,共27

2、頁。第十一頁,共27頁。第十二頁,共27頁。第十三頁,共27頁。第十四頁,共27頁。第十五頁,共27頁。int main(void) int row,col,i,j; int a32; printf(Enter 6 integers:n) ; for(i = 0; i 3; i+) /輸入 for(j = 0; j 2; j+) scanf(%d, &aij); for(i = 0; i 3; i+)/輸出 for(j = 0; j 2; j+) printf(%4d, aij); printf(n); row = col = 0; for(i = 0; i 3; i+) /比較 fo

3、r(j = 0; j arowcol) row = i; col = j; printf(max=a%d%d=%dn,row,col,arowcol); return 0; Enter 6 integers: 3 2 10 -96 -13 2 10 -96 -1max = a10 = 10 源程序P9i j aij輸入輸入0 0 a00=30 1 a01=21 0 a10=10 1 a11=-92 0 a20=6 1 a21-1輸出輸出0 0 a00=30 1 a01=21 0 a10=101 1 a11=-92 0 a20=6 1 a21=-1最大值最大值i j aij arowcol 0

4、0 3 a00=30 1 2 a00=31 0 10 a10=101 1 -9 a10=102 0 6 a10=102 1 -1 a10=10第十六頁,共27頁。二維數(shù)組的定義和引用1、定義、定義類型名類型名 數(shù)組名數(shù)組名 行長度行長度 列長度列長度 int a32;定義一個二維數(shù)組a,3行2列,共6個元素int b510;定義一個二維數(shù)組a,5 行 10 列, 共50 個元素 第十七頁,共27頁。2、引用、引用先定義,后使用先定義,后使用數(shù)組元素的引用:數(shù)組元素的引用:數(shù)組名數(shù)組名 行下標(biāo)行下標(biāo) 列下標(biāo)列下標(biāo) 行下標(biāo)和列下標(biāo):整型表達(dá)式行下標(biāo)和列下標(biāo):整型表達(dá)式行下標(biāo)的取值范圍是行下標(biāo)的取值

5、范圍是00, ,行長度行長度-1-1列下標(biāo)的取值范圍是列下標(biāo)的取值范圍是00, ,列長度列長度-1-1int a32; 3 行 2 列, 共6 個元素a00 a01 a10 a11 a20 a21 注:下標(biāo)不要越界注:下標(biāo)不要越界第十八頁,共27頁。二維數(shù)組在內(nèi)存中的存放方式int a32;3 行 2 列, 6 個元素表示1個3行2列的矩陣a00 a01 a10 a11 a20 a21 二維數(shù)組的元素在內(nèi)存二維數(shù)組的元素在內(nèi)存中按中按行行/列列方式存放方式存放a00a01a10a11a20a21 第十九頁,共27頁。二維數(shù)組的初始化1、分分行行賦初值賦初值int a33 = 1,2,3,4,5

6、,6,7,8,9;static int b43 = 1,2,3, ,4,5;數(shù)組數(shù)組a1 2 3 4 5 67 8 9數(shù)組數(shù)組b1 2 30 0 04 5 00 0 02、順序賦初值、順序賦初值int a33 = 1,2,3,4,5,6,7,8,9;static int b43 = 1,2,3,0,0,0,4,5;第二十頁,共27頁。省略行長度省略行長度對全部元素都賦初值對全部元素都賦初值int a 3=1,2,3,4,5,6,7,8,9;int a 3=1,2,3,4,5,6,7,8,9;或分行賦初值時,在初值表中列出全部行或分行賦初值時,在初值表中列出全部行static int b 3=1

7、,2,3,4,5,static int b 3=1,2,3,4,5,建議不要省略!建議不要省略!數(shù)組數(shù)組a1 2 3 4 5 67 8 9數(shù)組b1 2 30 0 04 5 00 0 0第二十一頁,共27頁。使用二維數(shù)組編程l行下標(biāo)和列下標(biāo)分別作循環(huán)變量行下標(biāo)和列下標(biāo)分別作循環(huán)變量, , 通通過二重循環(huán),遍歷二維數(shù)組過二重循環(huán),遍歷二維數(shù)組l通常將行下標(biāo)作為外循環(huán)的循環(huán)變量通常將行下標(biāo)作為外循環(huán)的循環(huán)變量l 列下標(biāo)列下標(biāo) 內(nèi)循環(huán)內(nèi)循環(huán)【例例7-5】第二十二頁,共27頁。定義定義1 1個個 3 3* *2 2 的二維數(shù)組的二維數(shù)組a a,數(shù)組元素的值數(shù)組元素的值由下式給出,按矩陣的形式輸出由下式給

8、出,按矩陣的形式輸出a a數(shù)組。數(shù)組。aij = i + jaij = i + j(0i20i2,0j10j1)生成一個矩陣并輸出 int a32;a00 a01 a10 a11 a20 a21 計算各數(shù)組元素的值計算各數(shù)組元素的值0 11 22 3寫出源程序!寫出源程序!第二十三頁,共27頁。#include int main(void) int i, j; int a32; for(i = 0; i 3; i+) for(j = 0; j 2; j+) aij = i + j; for(i = 0; i 3; i+) for(j = 0; j 2; j+) printf(%4d, aij)

9、; printf(n); return 0; i = 0 j = 0 a00=0 i = 0 j = 1 a01=1 i = 1 j = 0 a10=1 i = 1 j = 1 a11=2i = 2 j = 0 a20=2i = 2 j = 1 a21=3 源程序0 11 22 3/二維數(shù)組的輸入二維數(shù)組的輸入/二維數(shù)組的輸出二維數(shù)組的輸出第二十四頁,共27頁。自定義函數(shù)自定義函數(shù)day_of_year(year, month, day)day_of_year(year, month, day),計算并計算并返回年返回年yearyear、月、月monthmonth和日和日dayday所所對應(yīng)的

10、是該年第幾天。對應(yīng)的是該年第幾天。 day_of_year(2000, 3, 1) day_of_year(2000, 3, 1) 返回返回6161day_of_year(1981, 3, 1) day_of_year(1981, 3, 1) 返回返回6060分析:分析: 月月 0 1 0 1 2 2 3 3 11 1211 12非閏年非閏年 0 31 28 31 30 310 31 28 31 30 31 閏年閏年 0 31 0 31 2929 31 30 31 31 30 31日期計算二維數(shù)組方式int tab213= 0,31, 28, 31, 30,31,30,31,31,30,31,

11、 30,31, 0,31, 29, 31, 30,31,30,31,31,30,31, 30,31利用二維數(shù)組分別表利用二維數(shù)組分別表示非閏年示非閏年和閏年閏年 第二十五頁,共27頁。源程序int day_of_year(int year, int month, int day) int k, leap; int tab213= 0,31, 28, 31, 30,31,30,31,31,30,31, 30,31, 0,31, 29, 31, 30,31,30,31,31,30,31, 30,31 ; leap = (year%4=0&year%100!=0) | year %400=0;/行號 for (k=1; kmonth; k+)/列 day = day + tableapk; return day;函數(shù)調(diào)用:函數(shù)調(diào)用:day_of_year(2000, 3, 1) 返回返回61k tableapk day1 tab11=31 1+31=32

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論