6-1.一維數(shù)組及函數(shù)傳參_第1頁(yè)
6-1.一維數(shù)組及函數(shù)傳參_第2頁(yè)
6-1.一維數(shù)組及函數(shù)傳參_第3頁(yè)
6-1.一維數(shù)組及函數(shù)傳參_第4頁(yè)
6-1.一維數(shù)組及函數(shù)傳參_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一維數(shù)組、數(shù)組作為函數(shù)傳參計(jì)算機(jī)程序設(shè)計(jì)I主要內(nèi)容一維數(shù)組6.16.26.3數(shù)組作為函數(shù)參數(shù)小結(jié)引言請(qǐng)思考:有30個(gè)學(xué)生,每個(gè)學(xué)生有一個(gè)成績(jī),求這30個(gè)學(xué)生平均成績(jī)?如果有1000名學(xué)生呢?可以定義成簡(jiǎn)單的變量,但是煩瑣,30個(gè)簡(jiǎn)單變量,那1000個(gè)怎么辦?沒(méi)有反映出這些數(shù)據(jù)間的內(nèi)在聯(lián)系,數(shù)據(jù)具有相同的屬性。6.1 一維數(shù)組數(shù)組的定義:數(shù)組是一組有序數(shù)據(jù)的集合。數(shù)組的特點(diǎn):數(shù)組中的每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類(lèi)型。用數(shù)組名和下標(biāo)唯一確定數(shù)組中的元素。注意以下兩點(diǎn):計(jì)算機(jī)無(wú)法表示數(shù)學(xué)上的下標(biāo),所以使用s15表示s15 數(shù)組用來(lái)批量處理同類(lèi)型的數(shù)據(jù),可與循環(huán)結(jié)合使用,效率更高。6.1 一維數(shù)組數(shù)組和

2、變量一樣,必須先定義后使用。10個(gè)元素:a0、a1 、a2 、a3a9。每個(gè)元素都是int類(lèi)型。只能分別引用每個(gè)元素,而不能試圖整體引用。定義一維數(shù)組的一般形式為: 類(lèi)型符 數(shù)組名常量表達(dá)式;數(shù)組名的命名規(guī)則和變量名相同:標(biāo)識(shí)符命名規(guī)則。 如 int a10;數(shù)組名數(shù)組長(zhǎng)度:下標(biāo)從0開(kāi)始6.1 一維數(shù)組數(shù)組定義和數(shù)組元素引用舉例:不合法定義舉例:int n=10; int an;不合法原因:C語(yǔ)言不允許對(duì)數(shù)組大小動(dòng)態(tài)定義。引用數(shù)組元素的表示形式為:數(shù)組名下標(biāo)如a0=a5+a7-a2*3 合法int n=5,a10;an=20;必須是常量表達(dá)式合法6.1 一維數(shù)組初始化:在定義數(shù)組的同時(shí),給各數(shù)

3、組元素賦值int a10=0,1,2,3,4,5,6,7,8,9;int a10=0,1,2,3,4;相當(dāng)于 int a10=0,1,2,3,4,0,0,0,0,0;int a10=0,0,0,0,0,0,0,0,0,0;相當(dāng)于 int a10=0;int a5=1,2,3,4,5;可寫(xiě)為 int a =1,2,3,4,5;P146說(shuō)明6.1 一維數(shù)組例1 對(duì)10個(gè)數(shù)組元素依次賦值為0,1,2,3,4,5, 6,7,8,9,要求按逆序輸出。解題思路:定義一個(gè)長(zhǎng)度為10的數(shù)組,數(shù)組定義為整型要賦的值是從0到9,可以用循環(huán)來(lái)賦值用循環(huán)按下標(biāo)從大到小輸出這10個(gè)元素6.1 一維數(shù)組#include

4、int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 使a0a9的值為090123456789a0a1a2a3a4a5a6a7a8a96.1 一維數(shù)組#include int main() int i,a10; for (i=0; i=0; i-) printf(%d ,ai); printf(n); return 0; 先輸出a9,最后輸出a00123456789a0a1a2a3a4a5a6a7a8a96.2 數(shù)組作為函數(shù)參數(shù)數(shù)組元素相當(dāng)于普通變量,可以作為實(shí)參給函數(shù)形參傳值優(yōu)點(diǎn):需要反復(fù)傳

5、值時(shí),不用定義多個(gè)變量名字,可通過(guò)下標(biāo)變換結(jié)合循環(huán)實(shí)現(xiàn)6.2 數(shù)組作為函數(shù)參數(shù)例2:輸入10個(gè)數(shù),結(jié)合循環(huán)判斷數(shù)據(jù)是否是素?cái)?shù)。解題思路:可以定義長(zhǎng)度為10的一維數(shù)組a,用來(lái)存放10個(gè)數(shù)。設(shè)計(jì)一個(gè)prime函數(shù),計(jì)算是否是素?cái)?shù)如果是素?cái)?shù)則返回1,否則返回0依次判斷,輸出素?cái)?shù)元素6.2 數(shù)組作為函數(shù)參數(shù)數(shù)組元素作實(shí)參思考:形參值是否會(huì)改變實(shí)參值?不會(huì),因?yàn)槭仟?dú)立存儲(chǔ)單元單向傳遞參照上節(jié)普通變量傳參int main() int a10,i; printf(enter 10 integer numbers:); for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+

6、) if(prime(ai) printf(%d是素?cái)?shù)n,ai); int prime(int n) int flag=1,i; for(i=2;in & flag=1;i+) if(n%i=0) flag=0; return(flag);6.2 數(shù)組作為函數(shù)參數(shù)數(shù)組名的真實(shí)身份:數(shù)組首元素的地址數(shù)組名可作為函數(shù)參數(shù):實(shí)參傳遞的是數(shù)組首元素地址形參實(shí)質(zhì)編譯處理成指針變量,接收地址6.2 數(shù)組作為函數(shù)參數(shù)例3:有個(gè)一維數(shù)組score,內(nèi)放10個(gè)學(xué)生成績(jī),求平均成績(jī)解題思路:定義一個(gè)average函數(shù)求平均成績(jī)用數(shù)組名作為函數(shù)實(shí)參用數(shù)組名作為函數(shù)形參在average函數(shù)內(nèi)引用各數(shù)組元素6.2 數(shù)組

7、作為函數(shù)參數(shù)int main()float average(float array10); / 函數(shù)聲明float score10,aver;int i;printf(input 10 scores:n);for(i=0;i10;i+)scanf(%f,&scorei);printf(n);aver=average(score); / 調(diào)用average函數(shù)printf(average score is %5.2fn,aver);return 0; 數(shù)組名作為實(shí)參6.2 數(shù)組作為函數(shù)參數(shù)float average(float array10) int i;float aver,sum=arra

8、y0;for(i=1;i10;i+)sum=sum+arrayi; /累加求和aver=sum/10;return(aver);數(shù)組名作為形參,編譯系統(tǒng)不檢查大小,可改成array6.2 數(shù)組作為函數(shù)參數(shù)分析與演示調(diào)用函數(shù)時(shí)形參數(shù)組名array 獲得了實(shí)參數(shù)組score首元素地址int main aver=average(score); float average(float array10) &score0array6.2 數(shù)組作為函數(shù)參數(shù)分析與演示score0score1score2score3score4score5score9scorearrayarray0array1array2ar

9、ray3array9思考:函數(shù)中改變array數(shù)組,是否會(huì)影響實(shí)參數(shù)組score值?調(diào)用函數(shù)時(shí)形參數(shù)組名array 獲得了實(shí)參數(shù)組score首元素地址6.2 數(shù)組作為函數(shù)參數(shù)分析與演示score1score2score3score4score5score9scorearrayarray0score0=100score0=70*修改的是同一片內(nèi)存int main aver=average(score); printf(“%d”,score0); float average(float array) array0=70; *數(shù)組作為形參,形參可以修改實(shí)參值輸出706.2 數(shù)組作為函數(shù)參數(shù)例4:輸入10個(gè)數(shù),要求輸出值最大元素。解題思路:可以定義長(zhǎng)度為10的一維數(shù)組a,用來(lái)存放10個(gè)數(shù)。設(shè)計(jì)一個(gè)max函數(shù),形參也是一個(gè)數(shù)組函數(shù)用“打擂臺(tái)算法”依次比較各個(gè)數(shù)組元素,求得最大者將最大值返回6.2 數(shù)組作為函數(shù)參數(shù)int max(int b10); int main() int a10,i;for(i=0;i10;i+) scanf(%d,&ai); printf(The largest number is %d,max(a);int max(int b10) int i,m=b0; for(i=0;im) m=bi; return

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論