![C++課件 一維數(shù)組,二維數(shù)組_第1頁(yè)](http://file4.renrendoc.com/view/9d6084be049ebaaa9fd30d46afba331b/9d6084be049ebaaa9fd30d46afba331b1.gif)
![C++課件 一維數(shù)組,二維數(shù)組_第2頁(yè)](http://file4.renrendoc.com/view/9d6084be049ebaaa9fd30d46afba331b/9d6084be049ebaaa9fd30d46afba331b2.gif)
![C++課件 一維數(shù)組,二維數(shù)組_第3頁(yè)](http://file4.renrendoc.com/view/9d6084be049ebaaa9fd30d46afba331b/9d6084be049ebaaa9fd30d46afba331b3.gif)
![C++課件 一維數(shù)組,二維數(shù)組_第4頁(yè)](http://file4.renrendoc.com/view/9d6084be049ebaaa9fd30d46afba331b/9d6084be049ebaaa9fd30d46afba331b4.gif)
![C++課件 一維數(shù)組,二維數(shù)組_第5頁(yè)](http://file4.renrendoc.com/view/9d6084be049ebaaa9fd30d46afba331b/9d6084be049ebaaa9fd30d46afba331b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9講一維數(shù)組,二維數(shù)組數(shù)組數(shù)組:一組有序數(shù)據(jù)的集合。數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類型。用一個(gè)統(tǒng)一的數(shù)組名和下標(biāo)來(lái)唯一地確定數(shù)組中的元素。一維數(shù)組的定義和引用1.一維數(shù)組的定義類型說(shuō)明符數(shù)組名[常量表達(dá)式];說(shuō)明:1)數(shù)組名命名規(guī)則與變量名相同;
2)常量表達(dá)式不能含變量,不能用圓括弧;
3)下標(biāo)從0開(kāi)始計(jì)算。2.一維數(shù)組元素的引用
數(shù)組必須先定義后引用,并且只能引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。數(shù)組元素的表示形式為:
數(shù)組名[下標(biāo)]下標(biāo)可以是整型常量或整型表達(dá)式。如:
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ù)組元素運(yùn)行結(jié)果:98765432103.一維數(shù)組的初始化1).定義數(shù)組時(shí)初始化數(shù)組元素。如:
staticinta[10]={0,1,2,…,9};2).可以只給部分元素賦初值。如:
staticinta[10]={0,1,2,3,4};對(duì)static數(shù)組,未賦初值則系統(tǒng)默認(rèn)為0。3).對(duì)全部數(shù)組元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度。如:
staticinta[]={1,2,3,4,5};自動(dòng)定義長(zhǎng)度為5。注意:數(shù)組長(zhǎng)度與提供的初值個(gè)數(shù)不相等時(shí),不能省略數(shù)組長(zhǎng)度。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");}起泡法思路:
將相鄰兩個(gè)數(shù)比較,將小的調(diào)到前頭。經(jīng)過(guò)1輪比較后,最大的數(shù)已調(diào)到最后一個(gè)位置。所以n個(gè)數(shù)要比較n-1趟,在第j趟中要進(jìn)行n-j次比較。例題2:起泡法對(duì)10個(gè)整數(shù)按由小到大排序
第1次第2次第3次第4次第5次結(jié)果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個(gè)數(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:將一組十個(gè)數(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ù)組的定義類型說(shuō)明符數(shù)組名[常量表達(dá)式][常量表達(dá)式]
floata[3][4],b[5][10];注意:不能寫(xiě)成floata[3,4],b[5,10];
C語(yǔ)言這種定義二維數(shù)組的方式,使得可以把二維數(shù)組看成一種特殊的一維數(shù)組。如:
a[0]---------a00a01a02a03a a[1]---------a10a11a12a13 a[2]---------a20a21a22a23
即把a(bǔ)看成包含3個(gè)元素的一維數(shù)組,而每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。
a[0]---------a00a01a02a03a a[1]---------a10a11a12a13 a[2]---------a20a21a22a23
即把a(bǔ)看成包含3個(gè)元素的一維數(shù)組,而每個(gè)元素又是一個(gè)包含4個(gè)元素的一維數(shù)組。二維數(shù)組中元素的排列順序?yàn)椋喊葱写娣拧4娣彭樞颍?,2,3行。
a[3][4]C語(yǔ)言允許使用多維數(shù)組,其基礎(chǔ)為二維數(shù)組。如:語(yǔ)句inta[2][3][2];定義一個(gè)12個(gè)元素的3維數(shù)組。下標(biāo)變化順序:3,2,1。
1)對(duì)二維數(shù)組a[m][n],元素a[i][j]在數(shù)組中的排列位置計(jì)算公式為:
i*n+j+1對(duì)數(shù)組a[3][4],a[2][1]的位置為:
2*4+1+1=10表示它是第10個(gè)元素。
2)對(duì)二維數(shù)組a[m][n],元素a[i][j]在數(shù)組中的順序號(hào)計(jì)算公式為:
i*n+j對(duì)數(shù)組a[3][4],a[2][1]的順序號(hào)為:
2*4+1=9表示它前面有9個(gè)元素。2二維數(shù)組的引用
數(shù)組必須“先定義,后引用”。二維數(shù)組元素的表示形式:數(shù)組名[下標(biāo)][下標(biāo)]下標(biāo)可以是整型表達(dá)式。
數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值。如:
b[1][2]=a[2][3]/2;注意:下標(biāo)值的范圍。常見(jiàn)錯(cuò)誤:
inta[3][4];
| a[3][4]=3;a[3][4]指數(shù)組以外的某一存儲(chǔ)單元。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ù)寫(xiě)在一個(gè)花括號(hào)內(nèi),系統(tǒng)按排列順序?qū)υ刭x初值。如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
3).也可對(duì)部分元素賦初值。如staticinta[3][4]={{1},{5},{9}};其結(jié)果為:
100050009000staticinta[3][4]={{1},{0,6},{0,0,11}};
其結(jié)果為:
1000060000110
staticinta[3][4]={{1},{5,6}};其結(jié)果為:
100056000000也可以對(duì)第二行不賦初值:如staticinta[3][4]={{1},{},{9}};
4).若對(duì)全部元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省略。staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等價(jià)于staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
若定義時(shí)省略第一維的長(zhǎng)度并部分賦初值,則應(yīng)采用分行賦初值的方法。如:staticinta[][4]={{0,0,3},{},{0,10}};結(jié)果為
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ù)列(楊輝三角形)延長(zhǎng)到55個(gè)。1,1,1,1,2,1,1,3,3,1,1,4,6,4,1……main(){inta[
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)通信業(yè)務(wù)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及投資方向研究報(bào)告
- 2025年核桃新品種推廣與應(yīng)用技術(shù)合同
- 2025年度醫(yī)療設(shè)備采購(gòu)合同變更協(xié)議
- 2025年中國(guó)重型柴油車行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)與投資戰(zhàn)略咨詢報(bào)告
- 加工產(chǎn)品訂單合同范例
- 個(gè)人借款收條合同范例
- 刷單合同范例
- 倉(cāng)庫(kù)及辦公室裝修合同范例
- 培養(yǎng)專家型校長(zhǎng)的創(chuàng)新思路
- 公司送車合同范例
- 快餐品牌全案推廣方案
- 環(huán)境衛(wèi)生整治推進(jìn)行動(dòng)實(shí)施方案
- 口腔醫(yī)院感染預(yù)防與控制1
- 緒論中國(guó)文化概論張岱年
- 發(fā)生輸液反應(yīng)時(shí)的應(yīng)急預(yù)案及處理方法課件
- 中國(guó)旅游地理(高職)全套教學(xué)課件
- 數(shù)字貨幣的匿名性與反洗錢
- 門脈高壓性消化道出血的介入治療課件
- 民航保密培訓(xùn)課件
- 血庫(kù)輸血培訓(xùn)課件
- 詩(shī)詞寫(xiě)作入門
評(píng)論
0/150
提交評(píng)論