C++課件 一維數(shù)組,二維數(shù)組_第1頁
C++課件 一維數(shù)組,二維數(shù)組_第2頁
C++課件 一維數(shù)組,二維數(shù)組_第3頁
C++課件 一維數(shù)組,二維數(shù)組_第4頁
C++課件 一維數(shù)組,二維數(shù)組_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第9講一維數(shù)組,二維數(shù)組數(shù)組數(shù)組:一組有序數(shù)據(jù)的集合。數(shù)組中的每一個元素都屬于同一個數(shù)據(jù)類型。用一個統(tǒng)一的數(shù)組名和下標來唯一地確定數(shù)組中的元素。一維數(shù)組的定義和引用1.一維數(shù)組的定義類型說明符數(shù)組名[常量表達式];說明:1)數(shù)組名命名規(guī)則與變量名相同;

2)常量表達式不能含變量,不能用圓括?。?/p>

3)下標從0開始計算。2.一維數(shù)組元素的引用

數(shù)組必須先定義后引用,并且只能引用數(shù)組元素而不能一次引用整個數(shù)組。數(shù)組元素的表示形式為:

數(shù)組名[下標]下標可以是整型常量或整型表達式。如:

a[0]=a[5]+a[2*3]main(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;/*數(shù)組元素賦值*/for(i=9;i>=0;i--)

printf(“%d”,a[i]);/*逆序輸出各數(shù)組元素*/

printf("\n");}例題:輸出數(shù)組元素運行結果:98765432103.一維數(shù)組的初始化1).定義數(shù)組時初始化數(shù)組元素。如:

staticinta[10]={0,1,2,…,9};2).可以只給部分元素賦初值。如:

staticinta[10]={0,1,2,3,4};對static數(shù)組,未賦初值則系統(tǒng)默認為0。3).對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。如:

staticinta[]={1,2,3,4,5};自動定義長度為5。注意:數(shù)組長度與提供的初值個數(shù)不相等時,不能省略數(shù)組長度。4.一維數(shù)組程序舉例main(){inti;static

intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];

例題1:數(shù)組處理Fibonacci數(shù)列

for(i=0;i<20;i++){if(i%5==0)printf(“\n”);printf("%12d",f[i]);}

printf("\n");}起泡法思路:

將相鄰兩個數(shù)比較,將小的調到前頭。經過1輪比較后,最大的數(shù)已調到最后一個位置。所以n個數(shù)要比較n-1趟,在第j趟中要進行n-j次比較。例題2:起泡法對10個整數(shù)按由小到大排序

第1次第2次第3次第4次第5次結果main(){inta[11];

inti,j,t;

printf("input10numbers:\n");for(i=1;i<11;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=1;j<=9;j++)/*10個數(shù)比較9趟*/for(i=1;i<=10-j;i++)/*每趟比較10-j次*/ if(a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t; }

printf("thesortednumbers:\n");for(i=1;i<11;i++)

printf("%d",a[i]);

printf("\n");}輸入:10481265–76100–45123輸出:-76–4501481265100123main(){inta[11]={21,14,63,19,3,16,7,28,34,100};

inttemp1,i,j;

printf("初始數(shù)組如下:\n");for(i=0;i<10;i++) printf("%5d",a[i]);

printf("\n");

例題3:將一組十個數(shù)按由小到大順序排列.(交換法)

for(i=0;i<10;i++)for(j=i+1;j<11;j++)

if(a[j]>a[i]){temp1=a[j];a[j]=a[i];

a[i]=temp1;}for(i=0;i<11;i++) printf("%6d",a[i]);}二維數(shù)組的定義和引用1二維數(shù)組的定義類型說明符數(shù)組名[常量表達式][常量表達式]

floata[3][4],b[5][10];注意:不能寫成floata[3,4],b[5,10];

C語言這種定義二維數(shù)組的方式,使得可以把二維數(shù)組看成一種特殊的一維數(shù)組。如:

a[0]---------a00a01a02a03a a[1]---------a10a11a12a13 a[2]---------a20a21a22a23

即把a看成包含3個元素的一維數(shù)組,而每個元素又是一個包含4個元素的一維數(shù)組。

a[0]---------a00a01a02a03a a[1]---------a10a11a12a13 a[2]---------a20a21a22a23

即把a看成包含3個元素的一維數(shù)組,而每個元素又是一個包含4個元素的一維數(shù)組。二維數(shù)組中元素的排列順序為:按行存放。存放順序:1,2,3行。

a[3][4]C語言允許使用多維數(shù)組,其基礎為二維數(shù)組。如:語句inta[2][3][2];定義一個12個元素的3維數(shù)組。下標變化順序:3,2,1。

1)對二維數(shù)組a[m][n],元素a[i][j]在數(shù)組中的排列位置計算公式為:

i*n+j+1對數(shù)組a[3][4],a[2][1]的位置為:

2*4+1+1=10表示它是第10個元素。

2)對二維數(shù)組a[m][n],元素a[i][j]在數(shù)組中的順序號計算公式為:

i*n+j對數(shù)組a[3][4],a[2][1]的順序號為:

2*4+1=9表示它前面有9個元素。2二維數(shù)組的引用

數(shù)組必須“先定義,后引用”。二維數(shù)組元素的表示形式:數(shù)組名[下標][下標]下標可以是整型表達式。

數(shù)組元素可以出現(xiàn)在表達式中,也可以被賦值。如:

b[1][2]=a[2][3]/2;注意:下標值的范圍。常見錯誤:

inta[3][4];

| a[3][4]=3;a[3][4]指數(shù)組以外的某一存儲單元。main(){inti,j,k,a[2][3][2];for(i=0;i<2;i++) for(j=0;j<3;j++) for(k=0;k<2;k++)

scanf("%d",&a[i][j][k]);for(i=0;i<2;i++)for(j=0;j<3;j++) for(k=0;k<2;k++)printf("a[%d][%d][%d]=%d",i,j,k,a[i][j][k]);}向3維數(shù)組賦值并輸出其全部元素。3二維數(shù)組的初始化1).分行初始化。如:staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2).也可將數(shù)據(jù)寫在一個花括號內,系統(tǒng)按排列順序對元素賦初值。如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

3).也可對部分元素賦初值。如staticinta[3][4]={{1},{5},{9}};其結果為:

100050009000staticinta[3][4]={{1},{0,6},{0,0,11}};

其結果為:

1000060000110

staticinta[3][4]={{1},{5,6}};其結果為:

100056000000也可以對第二行不賦初值:如staticinta[3][4]={{1},{},{9}};

4).若對全部元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省略。staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等價于staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

若定義時省略第一維的長度并部分賦初值,則應采用分行賦初值的方法。如:staticinta[][4]={{0,0,3},{},{0,10}};結果為

0030000001000例題3:把由鍵盤輸入的數(shù)列按相反的順序輸出。#include“stdio.h”main(){

intj,i=0,a[100];

printf("inputsomeintergers(<=100):\n");

printf("endmark--Ctrl+z\n");while(scanf("%d",&a[i])!=EOF)i++;for(j=0,i=i-1;i>=0;j++,i--){if(j%3==0)printf("\n");

printf("%d\t",a[i]);}}輸入:357輸出:753例題4:將下列數(shù)列(楊輝三角形)延長到55個。1,1,1,1,2,1,1,3,3,1,1,4,6,4,1……main(){inta[

溫馨提示

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

評論

0/150

提交評論