C語言課件二維數(shù)組.ppt_第1頁
C語言課件二維數(shù)組.ppt_第2頁
C語言課件二維數(shù)組.ppt_第3頁
C語言課件二維數(shù)組.ppt_第4頁
C語言課件二維數(shù)組.ppt_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、11 二維數(shù)組的定義和引用, 11.1二維數(shù)組的定義,二維數(shù)組定義的一般形式為 類型說明符 數(shù)組名常量表達(dá)式常量表達(dá)式; 例如:定義a為34(3行4列)的數(shù)組,b為510(5行10列)的數(shù)組。如下: float a34,b510;,不能寫成 float a3,4,b5,10;, 11.1二維數(shù)組的定義,二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素,一維數(shù)組在內(nèi)存中的存放,下圖表示對(duì)a34數(shù)組存放的順序,地址 值 數(shù)組元素,b00 b01 b02 b10 b11 b12 b20 b21 b22,3000H 3002H 3004H 3006H 300

2、8H 300AH 300CH 300EH 3010H,例如:整型數(shù)組 b33= 1,2,3, 4,5,6, 7,8,9 ;,1 2 3,4 5 6,789,問題:有了二維數(shù)組的基礎(chǔ),那么多維數(shù)組如何定義呢?,定義三維數(shù)組: float a234; 多維數(shù)組元素在內(nèi)存中的排列順序:第一維的下標(biāo)變化最慢,最右邊的下標(biāo)變化最快。,二維數(shù)組元素的表示形式為:數(shù)組名下標(biāo)下標(biāo) 例如: a23 下標(biāo)可以是整型表達(dá)式,如 a2-12*2-1,數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如:b12=a23/2,常出現(xiàn)的錯(cuò)誤有: int a34; /* 定義a為34的數(shù)組 */ a34=3;,在使用數(shù)組元素時(shí),應(yīng)

3、該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。,可以用下面4種方法對(duì)二維數(shù)組初始化,數(shù)據(jù)類型 數(shù)組名 常量表達(dá)式1常量表達(dá)式2初始化數(shù)據(jù);,(1) 分行給二維數(shù)組賦初值。如: int a34=1,2,3,4,5,6,7,8,9,10,11,12;,(2) 可以將所有數(shù)據(jù)寫在一個(gè)花括弧內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。如: int a34=1,2,3,4,5,6,7,8,9,10,11,12;, 11.3二維數(shù)組的引用,(3) 可以對(duì)部分元素賦初值。如: int a34=1,5,9;,1 0 0 0 5 0 0 0 9 0 0 0,也可以對(duì)各行中的某一元素賦初值,如: int a34=1,0,6,

4、0,0,11;,1 0 0 0 0 6 0 0 0 0 0 11,1 0 0 0 5 6 0 0 0 0 0 0,也可以只對(duì)某幾行元素賦初值。如: int a34=1,5,6;,(4)如果對(duì)全部元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長度可以不指定,但第二維的長度不能省。如: int a34=1,2,3,4,5,6,7,8,9,10,11,12;它等價(jià)于:int a4=1,2,3,4,5,6,7,8,9,10,11,12;,在定義時(shí)也可以只對(duì)部分元素賦初值而省略第一維的長度,但應(yīng)分行賦初值。如:int a4=0,0,3,0,10;,0 0 3 0 0 0 0 0 0 10 0 0,二維數(shù)組元素的輸

5、入與輸出,1、輸入 int a34,i,j; for(i=0;i3;i+) for(j=0;j4;j+) scanf(%d,2、輸出 for(i=0;i3;i+) for(j=0;j4;j+) printf(%3d,aij); printf(n); ,例11.1 將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè) 二維數(shù)組中。,#include void main() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for (i=0;i=1;i+) for (j=0;j=2;j+) ,printf(%5d,aij); bji=aij; print

6、f(n); printf(array b:n); for (i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); /*程序結(jié)束*/,運(yùn)行結(jié)果如下: array a: 1 2 3 4 5 6 array b: 1 4 2 5 3 6,例11.2 求二維數(shù)組,對(duì)角線元素之和,#include void main() int a55,i,j,s=0; for(i=0;i5;i+) for(j=0;j5;j+) scanf(%d, ,例11.3: 有一個(gè)34的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。,先用N-S流程

7、圖表示算法 ,如下:,程序如下: #include void main() int i,j,row=0,colum=0,max; int a34=1,2,3,4,9,8,7,6, -10,10,-5,2; max=a00;,for (i=0;imax) max=aij; row=i; colum=j; printf(max=%d,row=%d,colum=%dn, max,row,colum); /*程序結(jié)束*/,說明:楊輝三角是一個(gè)下三角形式,它的第一列和對(duì)角線上的值都是1,其他的值為上一行前一列的數(shù)與上一行同一列的數(shù)之和如下形式: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1

8、 1 5 10 10 5 1 1 6 15 20 15 6 1,例11.4: 利用二維數(shù)組,輸出7行7列的楊輝三角。,#include stdio.h main() int a77,i,j; for(i=0;i7;i+) ai0=1;aii=1; for(i=2;i7;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j;,for(i=0;i7;i+) for(j=0;j=i;j+) printf(%3d,aij); printf(n); ,例11.5 從鍵盤上輸入9個(gè)整數(shù),保存在二維數(shù)組中,按數(shù)組原來位置輸出第一行和第一列的所有元素。 ,分析:1、輸入數(shù)組。 2、輸出數(shù)組時(shí)要考慮不是所有數(shù)據(jù)都輸出。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論