計算機軟件基礎課件:數組_第1頁
計算機軟件基礎課件:數組_第2頁
計算機軟件基礎課件:數組_第3頁
計算機軟件基礎課件:數組_第4頁
計算機軟件基礎課件:數組_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數組《計算機軟件基礎》數組:具有相同數據類型的若干個有序數據的集合。數組的分類:一維數組二維數組字符數組01.一維數組02.二維數組03.字符數組和字符串主要內容本章重點難點本章重點:一維數組和二維數組的定義、初始化、元素引用;字符數組的定義、初始化和元素引用;常用字符串處理函數;編寫處理字符串的簡單程序。本章難點:字符數組與字符串的區(qū)別;編寫處理字符串的簡單程序。01一維數組當構成數組的各個元素的下標(在數學中稱為下腳或腳碼)只有1個時,這樣的數組被稱為一維數組。1.一維數組的定義

類型說明符數組名[常量表達式];例:inta[5];a[0]a[1]a[2]a[3]a[4]2.一維數組的初始化1)在定義數組時對數組元素賦以初值。例如:inta[5]={2,5,3,7,9};2)在定義數組時省略對數組長度的聲明。例如:inta[]={2,5,3,7,9};3)為數組全部元素賦初值為0,可以寫成:inta[5]={0,0,0,0,0};

或inta[5]={0};只給部分數組元素賦初值時,不能省略對數組的長度聲明3.一維數組元素的引用例:inta[5];394351029a[0]a[1]a[2]a[3]a[4]一維數組元素引用的一般形式:

數組名[下標]4.應用舉例1)一維數組的輸入和輸出。定義一個整型數組arr[10],向其中輸入10個數據并依次輸出。main(){intarr[10],i;for(i=0;i<10;i++) scanf(“%d”,&arr[i]);printf(“該一維數組為:\n”);for(i=0;i<10;i++)printf(“%5d”,arr[i]);}循環(huán)實現一維數組的輸入循環(huán)實現一維數組的輸出2)編寫十進制數轉換成二進制的程序。把一個十進制數x轉換成二進制數的基本思路是:不斷把x%2的余數存入a數組中(x值為x不斷除以2后的商),直至x值為0,最后逆序輸出a數組各元素值。比如,十進制數26轉化為二進制數為11010如圖所示。十進制轉二進制示意圖a數組狀態(tài)示意圖02二維數組請在此處輸入具體內容,文字盡量言簡意賅,簡單說明意思即可,注意整體美觀度。請在此處輸入具體美觀度。1.二維數組的定義類型說明符數組名[常量表達式1][常量表達式2];例:inta[2][5];二維數組在內存中的排列順序是“按行”存入,即先存第0行所有元素,再存第1行。a[0][0]第0行第1行第0列第1列第2列第3列第4列a[1][2]a[0][4]2.二維數組的初始化1)分行給二維數組各元素賦值,這種賦值方法較直觀,不易出錯。例如:intx[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2)把所有數據寫在一個花括號內,在程序編譯時會按數組在內存中排列順序將各初始值分別賦給數組各元素,第一行所有列都賦值后,再賦值第二行,依此類推。例如:intx[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};3)可以對部分元素賦值。例如:inty[2][3]={1,2,3,4};。數組y有6個元素,僅給前4個賦值,后兩個元素為0。3.二維數組元素的引用二維數組元素引用的一般形式:

數組名[下標1][下標2]4.應用舉例4)也可使用花括號,在分行賦值時,只對該行中部分元素賦值。例如:inty[2][3]={{1,2},{3}};5)在定義數組時,若給出了全部元素值,則第一維的長度可以不寫,但第二維的長度永遠都不能省略。例如:inta[][3]={1,2,3,4,5,6};等價于:inta[2][3]={1,2,3,4,5,6};1)二維數組的輸入和輸出。定義一個二整型數組arr[3][4],向其中輸入數據并依次輸出。main(){intarr[10],i,j;for(i=0;i<3;i++) for(j=0;j<4;j++) scanf("%d",&arr[i][j]);printf(“該二維數組為:\n”);for(i=0;i<3;i++)/*逐行輸出共3行*/{ for(j=0;j<4;j++) /*每行輸出4個元素*/ printf("%4d",x[i][j]);printf("\n");}/*一行元素輸出后換行*/}雙重循環(huán)實現維數組的輸入雙循環(huán)實現二維數組的輸出

inta[2][3]={{4,5,6},{7,8,9}},b[3][2],i,j;printf("arraya:\n");for(i=0;i<2;i++){ for(j=0;j<3;j++) { printf("%4d",a[i][j]);/*輸出a數組各元素*/ b[j][i]=a[i][j];/*行、列互換,形成轉置陣b*/}printf("\n");}printf("arrayb:\n"); for(i=0;i<3;i++){ for(j=0;j<2;j++)printf("%4d",b[i][j]);printf("\n");}3)輸出楊輝三角形。楊輝三角,是二項式系數在三角形中的一種幾何排列。例如,圖3-6所示6×6的a矩陣,數字部分就構成一個楊輝三角形。它有如下特點:①第1列及主對線元素為1,即:for(i=1;i<=6;i++)a[i][1]=a[i][i]=1;②從第3(i=3)行開始,各行第2列(j=2)到第i-1列各項值等于該項左肩值加上頭頂值,即:for(i=3;i<=6;i++)for(j=2;j<=i-1;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];根據以上兩步就形成了楊輝三角形。③輸出楊輝三角形。第1行輸出1個數,第2行輸出2個數,第i行輸出i個數。a矩陣示意圖03字符數組和字符串數組中的一個元素存放一個字符1.字符數組的定義一般形式:char數組名[常量表達式];例如:chard[5];

在定義一個字符數組時逐個為數組中各元素指定初始字符。例如:chard[5]={'a','b','c','d','e'};數組d狀態(tài)圖2.字符數組的初始化chard[]={'a','b','c','d','e'};3.字符數組元素的引用第i個元素的引用形式:數組名[i-1],下標從0開始。1)字符元素值的輸入for(i=0;i<5;i++)scanf("%c",&d[i]);2)字符數組元素的輸出for(i=0;i<5;i++)printf("%c",d[i]);4.字符數組元素的輸入輸出注意,空格也是一個字符。5.字符串字符串實際就是由若干有效字符構成且以字符'\0'作為結束的一個字符序列。字符串常量:用一對雙引號括起來的一個字符序列。C語言沒有提供字符串數據類型,因此字符串的存取要用字符數組來實現。表3-1字符串和字符數組在使用上的不同2)例3-13編寫十進制數轉換成十六進制數的程序。思路:十進制數轉換成十六進制數的方法和例3-5中十進制數轉換成二進制數一樣,所不同的是:轉換成十六進制數中除數為16。十六進制數有16個數字:0~9、A~F,需要用字符數組來保存。scanf("%d",&x);y=x;/*把十進制數x保存到y(tǒng)中,便于輸出原始值x*/while(y!=0){m=y%16;if(m<10)/*余數全以字符存入a數組*/a[i]=m+'0';/*把小于10的余數變成數字字符*/elsea[i]=m-10+'A';/*把大于等于10的余數變成A~F大寫字母*/y=y/16;/*形成新的被除數y*/i++;}1)字符串輸入函數gets(字符數組):從鍵盤輸入一個字符串到字符數組。例如:charch[8]; /*該串占8字節(jié)內存*/2)字符串輸出函數puts(字符數組):將一個字符串輸出。

例如:charch[]={"abcd"};/*該串占5個字節(jié)內存,即ch數組長度為5*/puts(ch);3)求字符串長度的函數strlen(字符數組):求字符數組所表示串的長度。

例如:strlen("abcd")的結果為4。6.常見的字符串處理函數4)字符串連接函數strcat(字符數組1,字符數組2):把字符數組2所表示的串連到字符數組1所表示的串的后面,并刪去串1后的結束標記“\0”。

說明:

①字符數組1必須足夠大,以便容納連接后的串2。

②連接前,兩串均以“\0”結束;連接后,串1的“\0”取消,新串最后加“\0”。

③本函數返回值是字符數組1的首地址。5)字符串比較函數strcmp(字符數組1,字符數組2)數字字符<大寫字母<小寫字母例如:charsurname[15]=“Zhang”;charfirstna

溫馨提示

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

評論

0/150

提交評論