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

下載本文檔

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

文檔簡介

§11二維數(shù)組的定義和引用

§11.1二維數(shù)組的定義二維數(shù)組定義的一般形式為類型說明符數(shù)組名[常量表達(dá)式][常量表達(dá)式];例如:定義a為3×4(3行4列)的數(shù)組,b為5×10(5行10列)的數(shù)組。如下:floata[3][4],b[5][10];不能寫成floata[3,4],b[5,10];C語言二維數(shù)組注意我們可以把二維數(shù)組看作是一種特殊的一維數(shù)組:它的元素又是一個(gè)一維數(shù)組。例如,可以把a(bǔ)看作是一個(gè)一維數(shù)組,它有3個(gè)元素:a[0]、a[1]、a[2],每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。C語言二維數(shù)組§11.1二維數(shù)組的定義

二維數(shù)組中的元素在內(nèi)存中的排列順序是:按行存放,即先順序存放第一行的元素,再存放第二行的元素…

一維數(shù)組在內(nèi)存中的存放下圖表示對a[3][4]數(shù)組存放的順序C語言二維數(shù)組地址

數(shù)組元素b[0][0]b[0][1]b[0][2]b[1][0]b[1][1]b[1][2]b[2][0]b[2][1]b[2][2]3000H3002H3004H3006H3008H300AH300CH300EH3010H例如:整型數(shù)組

b[3][3]={{1,2,3},{4,5,6},{7,8,9}};123456789C語言二維數(shù)組問題:有了二維數(shù)組的基礎(chǔ),那么多維數(shù)組如何定義呢?定義三維數(shù)組:

floata[2][3][4];多維數(shù)組元素在內(nèi)存中的排列順序:第一維的下標(biāo)變化最慢,最右邊的下標(biāo)變化最快。

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ù)組的元素排列順序C語言二維數(shù)組二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)]例如:a[2][3]下標(biāo)可以是整型表達(dá)式,如a[2-1][2*2-1]數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值,例如:b[1][2]=a[2][3]/2注意不要寫成a[2,3],a[2-1,2*2-1]形式C語言二維數(shù)組常出現(xiàn)的錯(cuò)誤有:

inta[3][4];/*定義a為3×4的數(shù)組*/┆a[3][4]=3;

在使用數(shù)組元素時(shí),應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。C語言二維數(shù)組可以用下面4種方法對二維數(shù)組初始化數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]={初始化數(shù)據(jù)};(1)分行給二維數(shù)組賦初值。如:

inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

(2)可以將所有數(shù)據(jù)寫在一個(gè)花括弧內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};§11.3二維數(shù)組的引用C語言二維數(shù)組(3)可以對部分元素賦初值。如:

inta[3][4]={{1},{5},{9}};

100050009000也可以對各行中的某一元素賦初值,如:inta[3][4]={{1},{0,6},{0,0,11}};

1000060000011

100056000000也可以只對某幾行元素賦初值。如:inta[3][4]={{1},{5,6}};

C語言二維數(shù)組(4)如果對全部元素都賦初值,則定義數(shù)組時(shí)對第一維的長度可以不指定,但第二維的長度不能省。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};它等價(jià)于:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};在定義時(shí)也可以只對部分元素賦初值而省略第一維的長度,但應(yīng)分行賦初值。如:inta[][4]={{0,0,3},{},{0,10}};0030000001000C語言二維數(shù)組二維數(shù)組元素的輸入與輸出1、輸入inta[3][4],i,j; for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]);C語言二維數(shù)組2、輸出for(i=0;i<3;i++){ for(j=0;j<4;j++)printf("%3d",a[i][j]);printf("\n");}C語言二維數(shù)組例11.1將一個(gè)二維數(shù)組行和列元素互換,存到另一個(gè)二維數(shù)組中。#include<stdio.h>voidmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf(″arraya:\n″);for(i=0;i<=1;i++){for(j=0;j<=2;j++){例如:a=12314456b=2536C語言二維數(shù)組printf(″%5d″,a[i][j]);b[j][i]=a[i][j];}printf(″\n″);}printf(″arrayb:\n″);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d″,b[i][j]);printf(″\n″);}}/*程序結(jié)束*/運(yùn)行結(jié)果如下:arraya:123456arrayb:1425

3

6

C語言二維數(shù)組例11.2求二維數(shù)組,對角線元素之和#include<stdio.h>voidmain(){inta[5][5],i,j,s=0;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j];for(i=0;i<5;i++)s=s+a[i][i];printf("s=%d",s);}C語言二維數(shù)組例11.3:有一個(gè)3×4的矩陣,要求編程序求出其中值最大的那個(gè)元素的值,以及其所在的行號(hào)和列號(hào)。先用N-S流程圖表示算法,如下:C語言二維數(shù)組程序如下:

#include<stdio.h>voidmain(){inti,j,row=0,colum=0,max;inta[3][4]={{1,2,3,4},{9,8,7,6},

{-10,10,-5,2}};max=a[0][0];

C語言二維數(shù)組for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf(″max=%d,row=%d,colum=%d\n″,

max,row,colum);}/*程序結(jié)束*/C語言二維數(shù)組說明:楊輝三角是一個(gè)下三角形式,它的第一列和對角線上的值都是1,其他的值為上一行前一列的數(shù)與上一行同一列的數(shù)之和如下形式:111121133114641151010511615201561例11.4:利用二維數(shù)組,輸出7行7列的楊輝三角。

C語言二維數(shù)組#include"stdio.h"main(){inta[7][7],i,j;for(i=0;i<7;i++){a[i][0]=1;a[i][i]=1;}for(i=2;i<7;i++)for(j=1;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];C語言二維數(shù)組for(i=0;i<7;i++){for(j=0;j<=i;j++)printf("%3d",a[i][j]);printf("\n");}}C語言二維數(shù)組例11.5從鍵盤上輸入9個(gè)整數(shù),保存在二維數(shù)組中,按數(shù)組原來位置輸出第一行和第一列的所有元素。

1 2 3

6 7 8 9第0行第1行第2行0列1列2列分析:1、輸入數(shù)組。

2、輸出數(shù)組時(shí)要考慮不是所有數(shù)據(jù)都輸出。思考:應(yīng)該輸出的數(shù)據(jù)在位置關(guān)系上有何特點(diǎn)?(關(guān)鍵?。〤語言二維數(shù)組#include<stdio.h>main(){inti,j,a[3][3];for(i=0;i<3;i++)/*輸入數(shù)組*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論