第八講 二維數(shù)組.doc_第1頁(yè)
第八講 二維數(shù)組.doc_第2頁(yè)
第八講 二維數(shù)組.doc_第3頁(yè)
第八講 二維數(shù)組.doc_第4頁(yè)
第八講 二維數(shù)組.doc_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

二維數(shù)組一、定義在邏輯上可以把二維數(shù)組看成一個(gè)具有行和列的矩陣。 1 2 3 4 5 6 7 8 9定義格式:類型名 數(shù)組名整型常量1整型常量2, . ;例: int a33;說(shuō)明:1、定義了一個(gè)數(shù)組名為a的二維數(shù)組;2、二維數(shù)組a中每個(gè)元素都是int;3、二維數(shù)組a中有3*3個(gè)元素;4、二維數(shù)組a可以看成是一個(gè)具有3行3列的矩陣。 第0列 第1列 第2列第0行 a00 a01 a02第1行 a10 a11 a12第2行 a20 a21 a22二維數(shù)組中每個(gè)元素有兩個(gè)下標(biāo),第一個(gè)方括號(hào)中的下標(biāo)代表行號(hào),稱行下標(biāo);第二個(gè)方括號(hào)中的下標(biāo)代表列號(hào),稱列下標(biāo)。行下標(biāo)和列下標(biāo)都是從0開始。二維數(shù)組在內(nèi)存中也是占用連續(xù)的存儲(chǔ)單元。如圖所示:a00 a01 a02 a10 a11 a12 a20 a21 a22說(shuō)明:1、在C語(yǔ)言中,可以把二維數(shù)組看成一個(gè)一維數(shù)組,每個(gè)數(shù)組元素又是一個(gè)一維數(shù)組。2、二維數(shù)組名同樣存放的是地址常量,代表該數(shù)組的首地址,即第一個(gè)數(shù)組元素的地址。二、二維數(shù)組元素引用數(shù)組名下標(biāo)表達(dá)式1 下標(biāo)表達(dá)式2double w42;w01、wij、wi+kj+k 都是合法的數(shù)組元素引用形式三、二維數(shù)組的初始化int a33=1,2,3,4,5,6,7,8,9;int a33=1,2,3,4;例1:通過(guò)鍵盤給2*3的二維數(shù)組輸入數(shù)據(jù),第一行賦1、2、3,第二行賦10、20、30,然后按行輸出此二維數(shù)組。#include main() int a23,i,j; /*輸入數(shù)據(jù)*/ for(i=0;i2;i+) for(j=0;j3;i+) scanf(“%d”,&aij);/*輸出數(shù)據(jù)*/for(i=0;i2;i+) for(j=0;j3;i+) printf(“%d ”,&aij); printf(“n”);四、二維數(shù)組名作為實(shí)參時(shí)實(shí)參和形參之間的數(shù)據(jù)傳遞當(dāng)二維數(shù)組名作為實(shí)參時(shí),對(duì)應(yīng)的形參是一個(gè)行指針變量。行指針:int (*prt)2; int a33;prt=a; a0 a1 a2a00 a01 a02 a10 a11 a12 a20 a21 a22prtprt+; /*行指針prt每次移動(dòng)為一行*/int x10,*p; p=x; xx0 x1 x2 x3 x4 x5 x6 x7 x8 x9p p+; /*指針p每次移動(dòng)為一個(gè)單元*/五、程序舉例1、二維數(shù)組的輸入輸出#define M 6#define N 5int aMN;輸入: for(i=0;iM;i+)for(j=0;iN;j+) aij=rand()%50;輸出: for(i=0;iM;i+)for(j=0;iN;j+) printf(“%d ”aij);2、計(jì)算方陣每行的和值、平均值、最大值、最小值。#include #define M 5int sMM =23,87,10,44,11, 91,66,24,5,51,31,2,19,91,28,65,10,9,6,39,22,35,49,82,76;int xM=0;void jisuan() int i,j; for(i=0;iM;i+) sum=0;for(j=0;jM;j+) sum=sum+sij;xi=sum;main() int i;jisuan();for(i=0;iM;i+) printf(“%d ”xi);字符串“Hello!”字符串常量在內(nèi)存中占用一串連續(xù)的存儲(chǔ)空間。不同的字符串具有不同的起始地址。在C語(yǔ)言中,字符串常量被隱含處理成一個(gè)以0結(jié)尾的無(wú)名字符型一維數(shù)組。一、字符數(shù)組、字符串(1)char str10=s,t,r,i,n,g,! ;str:string!000str0 str1 str2 str3 str4str5 str6str7 str8 str9(2)char ss10=“string!”;ss:string!000ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 ss8 ss9(3)char ss=“string!”;ss:string!0ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 (4)char ss=“string!”,*p; p=ss;ss:string!0ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 p(5)char *p=“string!”;string!0p二、字符串的輸入和輸出1、scanf()和printf()實(shí)現(xiàn)字符串的整體輸入和輸出(1)scanf(“%s”,輸入項(xiàng));說(shuō)明:輸入項(xiàng)可以是字符數(shù)組名,字符數(shù)組元素地址,也可以是字符指針變量。例:char str15; scanf(“%s”,str);注意:用%s格式符輸入 時(shí),空格和回車符都作為輸入數(shù)據(jù)的分隔符而不能被讀入。(2)printf(“%s”,輸出項(xiàng));說(shuō)明:輸入項(xiàng)可以是字符串常量、字符數(shù)組名,也可以是指向字符串的字符指針變量。2、gets()和puts()(1)gets()函數(shù):輸入一行字符串格式:gets(str_adr);說(shuō)明:str_adr可以是字符數(shù)組名、字符數(shù)組元素地址或字符指針變量。作用:從終端設(shè)備(鍵盤)讀入字符串(包括空格),直到讀入一個(gè)換行符為止。換行符讀入后,不作為字符串的內(nèi)容,系統(tǒng)自動(dòng)用0代替。例:char str20; gets(str);(2)puts()函數(shù):輸出一行字符串格式:puts(str_adr);說(shuō)明:str_adr可以是字符數(shù)組名、字符數(shù)組元素地址或字符指針變量。作用:從終端設(shè)備(屏幕)輸出字符串(包括空格),直到第一個(gè)0即結(jié)束輸出。三、字符串?dāng)?shù)組定義:字符串?dāng)?shù)組就是數(shù)組中的每個(gè)元素又都是一個(gè)字符串。char name1080;說(shuō)明:字符串?dāng)?shù)組的第一個(gè)下標(biāo)決定字符串的個(gè)數(shù),第二個(gè)小標(biāo)決定字符串的最大長(zhǎng)度。char ca35=“a”,“bb”,“ccc”;ca00ca0a0ca1bb0ca2ccc0四、字符串處理函數(shù)char *s1,*s2,*s,ch;strcat(s1,s2):把字符串s2連接到s1后面,返回s1所指地址。strcmp(s1,s2):對(duì)s1和s2所指字符串進(jìn)行比較(區(qū)分大小寫)。s1s2, 返回正數(shù)。char *s1,*s2;s1=”strstringstr”;s2=”int”strcmp(s1,s2);stricmp(s1,s2):對(duì)s1和s2所指字符串進(jìn)行比較(不區(qū)分大小寫)。s1s2, 返回正數(shù)。strcpy(s1,s2):把s2指向的字符串復(fù)制到s1指向的空間,返回s1所指地址。strlen(s):求s所指字符串的長(zhǎng)度。返回字符串中字符的個(gè)數(shù)。strchr(s,ch):在s所指字符串中找出第一次出現(xiàn)字符ch的位置。返回找到的字符的地址,找不到返回NULL。char *p=”string”,ch;ch=n;strchr(p,ch);strstr(s1,s2):在s1所指字符串中找出字符串s2第一次出現(xiàn)的位置。返回找到的字符串的地址,找不到返回NULL。char *s1,*s2;s1=”strstringstr”;s2=”str”strstr(s1,s2);其他函數(shù)(講解習(xí)題時(shí)再介紹):如:memset();memcpy();atoi();五、程序舉例字符串是否結(jié)束的判斷方式1、一維數(shù)組char ss=“string!”,*p;p=ss;ss:string!0ss0 ss1 ss2 ss3 ss4

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論