版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)組本章內(nèi)容第一節(jié)一維數(shù)組第二節(jié)一維數(shù)組的應(yīng)用第三節(jié)二維數(shù)組第四節(jié)二維數(shù)組的應(yīng)用 第一節(jié)一維數(shù)組一、數(shù)組的概念數(shù)組是一組數(shù)據(jù)類型相同的變量的集合。數(shù)組是一種數(shù)據(jù)類型,屬于構(gòu)造類型。數(shù)組用數(shù)組名來表示大批量數(shù)據(jù)。數(shù)組中每個數(shù)據(jù)稱為數(shù)組元素。二、一維數(shù)組的定義定義的語法格式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式];定義一個數(shù)組的類型、名字以及數(shù)組長度。數(shù)組名的命名需要符合標(biāo)識符的命名規(guī)則。常量表達(dá)式表示數(shù)組中元素的個數(shù),稱為數(shù)組長度。三、一維數(shù)組的引用數(shù)組元素可以通過數(shù)組名加下標(biāo)進(jìn)行引用。語法格式: 數(shù)組名[下標(biāo)]每個數(shù)組元素都有一個下標(biāo)(下標(biāo)也稱為索引),一個有n個元素的數(shù)組,其下標(biāo)從0到n-1。第一個元素的下標(biāo)為0,最后一個元素的下標(biāo)為n-1。四、一維數(shù)組的初始化數(shù)組定義的時候給數(shù)組賦初值。初始化的語法格式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]={初值列表};1、全部初始化 例如: inta[10]={1,2,3,4,5,6,7,8,9,10};2、部分初始化 例如:inta[10]={1,2,3,4,5};五、一維數(shù)組的賦值數(shù)組定義的時候給數(shù)組賦初值。初始化的語法格式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]={初值列表};1、單個賦值:使用下標(biāo)給數(shù)組元素賦值 數(shù)組名[下標(biāo)]=值;2、整體賦值:使用for循環(huán)為數(shù)組元素賦值例7-1:使用for循環(huán),為數(shù)組元素賦值,并且輸出數(shù)組元素。注意:在操作數(shù)組時,經(jīng)常需要依次訪問數(shù)組中的每個元素,這種操作稱作數(shù)組的遍歷。數(shù)組遍歷可以使用for循環(huán)來實現(xiàn)。#include<iostream>usingnamespacestd;intmain(){inti,a[10];for(i=0;i<10;i++) //用for循環(huán)為數(shù)組元素賦值
{a[i]=i*10; //值為下標(biāo)*10}for(i=0;i<10;i++) //數(shù)組遍歷,輸出數(shù)組元素
{cout<<a[i]<<""; //數(shù)據(jù)在一行輸出,空格隔開
}return0;}例7-2:使用for循環(huán),從鍵盤輸入數(shù)據(jù)為數(shù)組元素賦值,并且輸出數(shù)組元素。#include<iostream>usingnamespacestd;intmain(){inti,a[10];for(i=0;i<10;i++) //用for循環(huán)為數(shù)組元素賦值
cin>>a[i]; //從鍵盤輸入數(shù)組元素的值
for(i=0;i<10;i++) //數(shù)組遍歷,輸出數(shù)組元素
{cout<<a[i]<<endl; //一行輸出一個數(shù)組元素
}return0;}第二節(jié)一維數(shù)組的應(yīng)用數(shù)組的應(yīng)用非常廣泛,比如數(shù)值計算、獲取最值、排序、統(tǒng)計、查找等操作,靈活使用數(shù)組對實際開發(fā)非常重要。一、平均值例7-3:輸入10位同學(xué)的成績,求平均分并且統(tǒng)計大于平均分的人數(shù)。#include<iostream>usingnamespacestd;intmain(){ floata[10],s=0,avg; //s表示總分,avg表示平均分
inti,cnt=0; //cnt表示人數(shù)
//輸入10個成績,并且求和 for(i=0;i<10;i++) { cin>>a[i]; s=s+a[i]; } avg=s/10; //求平均分
cout<<"平均分:"<<avg<<endl; //輸出平均分
//10個成績逐一和平均分比較大小,統(tǒng)計人數(shù) for(i=0;i<10;i++) { if(a[i]>avg) cnt=cnt+1; //人數(shù)累加1 } cout<<"大于平均分的人數(shù):"<<cnt<<endl; //輸出平均分 return0;}二、最大值最小值和極差例7-4:輸入10個整數(shù),求最大值、最小值和極差(最大值-最小值)。#include<iostream>usingnamespacestd;intmain(){ inta[10],max,min; //max表示最大值,min表示最小值
inti; //for循環(huán)給數(shù)組元素賦值
for(i=0;i<10;i++) cin>>a[i]; max=a[0],min=a[0]; //假設(shè)第一個數(shù)組元素就是最大值和最小值
//for循環(huán)遍歷數(shù)組,判斷大小
for(i=1;i<10;i++) { if(a[i]>max) //如果大于max,將大數(shù)賦給max;
max=a[i]; if(a[i]<min) //如果小于min,將小數(shù)賦給min min=a[i]; } //遍歷結(jié)束后,max中就是最大值,min中就是最小值
cout<<max<<""<<min<<""<<max-min<<endl; return0;}三、斐波那契數(shù)列例7-5:輸出斐波那契數(shù)列的前20項。斐波那契數(shù)列的第1項是1,第2項是1,第3項為前兩項的和,以此類推第4項就是第2、3項的和。數(shù)列的值是:11235813213455……。#include<iostream>usingnamespacestd;intmain(){ inti,a[20]; //for循環(huán)構(gòu)造斐波那契數(shù)列
for(i=0;i<20;i++) { if(i==0||i==1) //第1項和第2項都為1 a[i]=1; else a[i]=a[i-1]+a[i-2]; //從第3項開始,每項都是前兩項的和
} //for循環(huán)輸出斐波那契數(shù)列 for(i=0;i<20;i++) cout<<a[i]<<""; return0;}四、查找例7-6:已知數(shù)組inta[10]={1,3,5,9,11,13,15,19,23,25},從鍵盤上輸入一個自然數(shù)n,若n在集合a中,則輸出n在a中的位置,否則輸出“無此數(shù)”。#include<iostream>usingnamespacestd;intmain(){ intn,a[10]={9,51,17,72,28,32,19,56,89,92}; intflag=0;//立flag標(biāo)記,值為0 cin>>n; //數(shù)組遍歷,查找n for(inti=0;i<10;i++) { if(n==a[i])//判斷n是否等于數(shù)組元素 { flag=1;//找到,值為1 cout<<"第"<<i+1<<"個位置";//輸出位置 break; } } //遍歷結(jié)束,判斷flag的值是否為0,為0表示沒找到 if(flag==0) cout<<"無此數(shù)"; return0;}五、排序例7-7:輸入10個整數(shù),從小到大進(jìn)行排序。用冒泡排序法實現(xiàn)。冒泡排序法的升序排序過程如下:1、首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后;然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后;如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。第1次遍歷后,將最大的數(shù)放到了最后。2、仍然從第1個數(shù)開始,比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后;然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后;如此繼續(xù),一直比較到倒數(shù)第二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),在倒數(shù)第二的位置上得到一個新的最大數(shù)(其實在整個數(shù)列中是第二大的數(shù))。第2次遍歷結(jié)束。3、如此下去,進(jìn)行9次遍歷后,所有數(shù)均有序。#include<iostream>usingnamespacestd;intmain(){ inta[10],i,j,t; for(i=0;i<10;i++) //輸入10個整數(shù) cin>>a[i];
for(i=0;i<9;i++) //冒泡排序,循環(huán)9次 { for(j=0;j<9-i;j++) //一趟冒泡排序 { if(a[j]>a[j+1]) //兩兩比較大小 { t=a[j];a[j]=a[j+1];a[j+1]=t;//交換 } } }
for(i=0;i<10;i++)//輸出排序結(jié)果 cout<<a[i]<<""; return0;}一、二維數(shù)組的定義第三節(jié)二維數(shù)組語法格式:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];二維數(shù)組中的數(shù)組元素的引用形式為:數(shù)組名[行下標(biāo)][列下標(biāo)]例如:inta[2][3];該語句定義了一個二維數(shù)組a,第一維大小為2,第二維大小為3,可以被認(rèn)為是一個2行(0~1)3列(0~2)的表格,包含6個數(shù)組元素。二、二維數(shù)組的初始化1、按照數(shù)組元素在內(nèi)存中存放順序,對所有元素賦初值。例如:inta[2][3]={78,34,65,83,59,92};對全部數(shù)組元素賦值,可以省略行下標(biāo)值,但不能省略列下標(biāo)值。即:inta[][3]={78,34,65,83,59,92};語法格式:數(shù)據(jù)類型數(shù)組名[常量表達(dá)式1][常量表達(dá)式2]={初值列表};2、以行結(jié)構(gòu)方式,就是將每一行的數(shù)據(jù)放在一個大括號中。例如:inta[2][3]={{78,34,65},{83,59,92}};例7-8:給二維數(shù)據(jù)輸入數(shù)據(jù),并以行列形式輸出。#include<iostream>usingnamespacestd;intmain(){ inta[2][3],i,j; //兩重循環(huán),給二維數(shù)組元素賦值
for(i=0;i<2;i++) for(j=0;j<3;j++) cin>>a[i][j]; //輸出二維數(shù)組元素
for(i=0;i<2;i++) { for(j=0;j<3;j++) cout<<a[i][j]<<"";//輸出一行
cout<<endl;//換行
} return0;}二維數(shù)組常用于表格數(shù)據(jù)的存儲和處理、矩陣運(yùn)算等。第四節(jié)二維數(shù)組的應(yīng)用一、矩陣轉(zhuǎn)置例7-9:求矩陣的轉(zhuǎn)置矩陣。#include<iostream>usingnamespacestd;intmain(){ int A[2][3]={{1,2,3},{4,5,6}},AT[3][2],i,j; //求A的轉(zhuǎn)置矩陣
for(i=0;i<2;i++) for(j=0;j<3;j++) AT[j][i]=A[i][j]; //輸出轉(zhuǎn)置矩陣
for(i=0;i<3;i++) { for(j=0;j<2;j++) cout<<AT[i][j]<<""; cout<<endl; } return0;}二、楊輝三角形例7-10:輸出10行楊輝三角形。11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1#include<iostream>usingnamespacestd;intmain(){ int a[10][10],i,j; //第1列和主對角線元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度特種車輛安裝與安全培訓(xùn)合同3篇
- 西安醫(yī)學(xué)高等??茖W(xué)校《商業(yè)影片綜合案例制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版1209兩人合伙經(jīng)營寵物美容與寄養(yǎng)中心協(xié)議3篇
- 二零二五年度珠寶首飾交易居間代理協(xié)議3篇
- 新疆機(jī)電職業(yè)技術(shù)學(xué)院《影視劇美術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 個體經(jīng)銷商專屬銷售授權(quán)協(xié)議(2024年度)版B版
- 通化師范學(xué)院《二維動畫技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024離婚債務(wù)分割詳細(xì)合同書版B版
- 二零二五版廚具設(shè)備售后服務(wù)與技術(shù)培訓(xùn)合同3篇
- 2024版電源租賃協(xié)議
- 2025年抗肺纖維化藥物市場分析報告
- 銀行會計主管年度工作總結(jié)2024(30篇)
- 教師招聘(教育理論基礎(chǔ))考試題庫(含答案)
- 上海市12校2025屆高三第一次模擬考試英語試卷含解析
- 三年級數(shù)學(xué)(上)計算題專項練習(xí)附答案集錦
- 長亭送別完整版本
- 《鐵路軌道維護(hù)》課件-更換道岔尖軌作業(yè)
- 股份代持協(xié)議書簡版wps
- 職業(yè)學(xué)校視頻監(jiān)控存儲系統(tǒng)解決方案
- 《銷售心理學(xué)培訓(xùn)》課件
- 2024年安徽省公務(wù)員錄用考試《行測》真題及解析
評論
0/150
提交評論