lesson9數(shù)據(jù)的組織結(jié)構(gòu)一一維數(shù)組ppt課件_第1頁
lesson9數(shù)據(jù)的組織結(jié)構(gòu)一一維數(shù)組ppt課件_第2頁
lesson9數(shù)據(jù)的組織結(jié)構(gòu)一一維數(shù)組ppt課件_第3頁
lesson9數(shù)據(jù)的組織結(jié)構(gòu)一一維數(shù)組ppt課件_第4頁
lesson9數(shù)據(jù)的組織結(jié)構(gòu)一一維數(shù)組ppt課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造Lesson 9 數(shù)據(jù)的組織2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造學(xué)習(xí)目的:31學(xué)會運(yùn)用數(shù)組處置程序中的數(shù)據(jù)2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2向量數(shù)學(xué)定義:一組既有大小又有方向的量例如:向量d:(1,3,4,6,5,2,0,8)向量b:(100,300,200,400)特點(diǎn):1、是一組量2、有方向性,即每個數(shù)據(jù)在其中有位置2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2在C言語中,數(shù)組與向量對應(yīng),可以實(shí)現(xiàn)處置與向量相關(guān)的問題數(shù)組:假設(shè)干類型一樣的相關(guān)數(shù)據(jù)(變量)順序陳列在一同例如:向量d:(1,3,

2、4,6,5,2,0,8)465208132022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2數(shù)組類型的運(yùn)用背景處置向量問題1同時存在假設(shè)干個用來描畫同一性質(zhì)且不同個體的數(shù)據(jù)(向量)。2只需將這些數(shù)據(jù)組織在一同構(gòu)成批量數(shù)據(jù),運(yùn)用循環(huán)進(jìn)展處置。2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3一維數(shù)組3類型 數(shù)組名 長度定義數(shù)組普通方式:int array 10例:float f 100; char ch 5;一切元素都是int數(shù)組名長度:10留意:必需是常量數(shù)組:array2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2數(shù)組名:d用位置(下標(biāo))表示。注:下標(biāo)從0開場d0d1d

3、2d3d4d5d6d7數(shù)組特性:1、有一致的名字,即數(shù)組名3、可經(jīng)過變量在其中的位置來表示它2、多個變量有序的陳列4、數(shù)組中的變量叫數(shù)組元素,它在其中的位置叫下標(biāo)2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3一維數(shù)組3數(shù)組定義后的元素初值是隨機(jī)數(shù)普通需求我們來初始化int a10 = 1,2,3,4,5,6,9,0,12,-1;int a = 11, 22, 33, 44, 55 ;int a5 = 1 ;1234569012-1省略時,長度為5,2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3一維數(shù)組3數(shù)組元素的援用 例:d3;#include int main() int d10=1

4、,0,4,2,3,4,5,6,30,40,s; s=d0+d1+d4+d8; printf(“s=%d,s); return 0; d2d6d2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2例:從鍵盤輸入一個數(shù),按二進(jìn)制方式輸出分析: 將一個數(shù)的一切二進(jìn)制位看成一個向量例如:假設(shè)輸入的是82那么是(0,1,0,1,0,0,1,0)問題轉(zhuǎn)換成如何求該向量2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2C言語中的數(shù)組可以表示向量那么向量a(0,1,0,1,0,0,1,0)在C言語中就是01001001數(shù)組a因此問題轉(zhuǎn)換成假設(shè)給數(shù)組a中的元素賦值提問:如何賦值,有沒有規(guī)律?2

5、022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2從鍵盤輸入的是82d7 = 0d6 = 1d5 = 0d4 = 0d3 = 1d2 = 0d1 = 1d0 = 0最后按照順序輸出d0d7的值 d7=n%2;n=n/2; d6=n%2;n=n/2; d5=n%2;n=n/2; d4=n%2;n=n/2; d3=n%2;n=n/2; d2=n%2;n=n/2; d1=n%2;n=n/2; d0=n%2;n=n/2;2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2思緒1、定義一個數(shù)組,長度為82、定義變量n,i,n放所要轉(zhuǎn)換的數(shù),i作為訪問數(shù)組中變量的位置3、從第7個開場,往前

6、逐個給數(shù)組中的變量賦值4、從第0個開場,往后逐個輸出數(shù)組中的變量2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造流程圖2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組概念2#include int main( ) int d8,n,i; scanf(%d,&n); for(i=7;i=0;i-) di=n%2; n=n/2; for(i=0;i=7;i+) printf(%d,di); system(pause); return 0;2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組的妙用3例:輸出數(shù)列1,1,2,3,5,8的前20項(xiàng)11235813213455思緒:將數(shù)列看成一向量

7、1、定義一個長度20個的數(shù)組表示向量2、根據(jù)位置關(guān)系逐個計(jì)算每個變量(元素)的值2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造#include #define NUM 100 int main( ) int fNUM,i; f0=1; f1=1; for (i=2; iNUM; i+) fi=fi-1+fi-2; for (i=0; iNUM; i+) printf(“%d,fi); return 0;lesson9_01.c2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組的妙用:課堂練習(xí)3求S=1/1+1/2+2/3+3/5+5/8+8/13+ 后面20項(xiàng)的和分析s=1/1+1/2+

8、2/3+3/5+5/8+ 式中各項(xiàng)都是1 1 2 3 5 8 13 數(shù)列中的值,將其求出來放在數(shù)組中,然后逐個相除2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3一維數(shù)組的根本操作4數(shù)組的賦值利用賦值語句為數(shù)組賦值 for (i=0; i10; i+) votei = 0; 調(diào)用規(guī)范輸入函數(shù)為數(shù)組賦值 for (i=0; i10; i+) scanf(“%d, &votei); int vote 10;2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3一維數(shù)組的根本操作4數(shù)組的輸出 for (i=0; i10; i+) printf(“%5d, votei); int vote 10;202

9、2/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組運(yùn)用5數(shù)組大小最好用宏來定義,以順應(yīng)未來能夠的變化#define SIZE 10int aSIZE;留意:1、數(shù)組一旦定義,不能改動大小2、訪問數(shù)組元素時,下標(biāo)不能超越長度,即下標(biāo)有效范圍0,len)3、數(shù)組間不能整體賦值2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組運(yùn)用6假設(shè)有數(shù)組int a10=1,2,4,5,3,6,7,8,9,0;int b10;假設(shè)需求使數(shù)組b中元素的值與a的一樣b=a (是錯誤的)正確做法for(i=0;i10;i+) bi=ai;2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3課堂練習(xí)6從鍵盤輸入某班10位

10、同窗C言語學(xué)習(xí)成果,輸出最高分2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組運(yùn)用5例2:運(yùn)用挑選法輸出18內(nèi)的一切素數(shù)23456789101112131415161712180000000030042022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造#include #include #define NUM 18 int main( ) int dataNUM,i,j,n; for (i=0; iNUM; i+)/*給數(shù)組的元素賦值*/ datai=i+1; n=sqrt(NUM); for(i=1;in;i+) /*將數(shù)組中非素數(shù)置成0*/ for(j=i+1;jNUM;j+) if(d

11、atai!=0&dataj%datai=0) dataj=0; for(i=1;iNUM;i+)/*輸出*/ if(datai!=0) printf(%6d,datai); return 0;lesson9_02.c2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組運(yùn)用5例3:知在一條鐵路上有十個站:A,B,C,D,E,F,G,H,I,J,如以下圖所示127ABCDEFGHJI10020056131389875火車票費(fèi)用計(jì)算規(guī)那么:當(dāng)乘車間隔=300公里時,超越部分每公里0.3元,設(shè)計(jì)一個程序,輸入兩個站的站名,計(jì)算其應(yīng)付的火車票費(fèi)用882022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)

12、組運(yùn)用5問題分析運(yùn)用數(shù)組保管相鄰站之間的間隔經(jīng)過站名計(jì)算乘車間隔 計(jì)算火車票費(fèi)用2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造#include #define NUM 9 /* 段數(shù) */int main( ) int lineNUM = 100,200,56,131,38,98,75,88,127,i,distance=0; float value; char start,end,ctn; while(1) printf(請輸入乘車起點(diǎn)站n); scanf(%c, &start); getchar(); printf(請輸入乘車終站n); scanf(%c, &end); getchar(

13、); for(i=start-A;iend-A;i+) distance+=linei; if(distance%c站的火車票費(fèi)用為%.2f元n,start,end,value); printf(能否繼續(xù)(Y/N); scanf(%c,&ctn);getchar(); if(ctn!=Y) break; system(cls); return 0; lesson9_03.c2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造3數(shù)組運(yùn)用5根據(jù)需求對數(shù)據(jù)進(jìn)展統(tǒng)計(jì) 為了滿足特定的需求,對一組數(shù)據(jù)的某些特征進(jìn)展統(tǒng)計(jì)是一項(xiàng)經(jīng)常遇到的根本操作。例如,統(tǒng)計(jì)一段文本中某個字符出現(xiàn)的頻率;統(tǒng)計(jì)學(xué)生考試的平均成果等等

14、都屬于統(tǒng)計(jì)操作。統(tǒng)計(jì)操作的結(jié)果往往是經(jīng)過對一切數(shù)據(jù)進(jìn)展掃描、判別或綜合加工得到的。在C程序中,參與統(tǒng)計(jì)操作的批量數(shù)據(jù)可以用一維數(shù)組來組織,詳細(xì)統(tǒng)計(jì)過程可以經(jīng)過邏輯判別、累計(jì)、算術(shù)運(yùn)算等根本操作手段實(shí)現(xiàn)。 2022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造例4:統(tǒng)計(jì)一段文本中每個英文字母出現(xiàn)的次數(shù)。 分析:定義一個數(shù)組letter,存放英文字母出現(xiàn)的次數(shù)00000000letterA的次數(shù)B的次數(shù)C的次數(shù)循環(huán)字符數(shù)組,針對每個字母,找到其在數(shù)組letter中的對應(yīng)位置,然后加13數(shù)組運(yùn)用52022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造00000000letterA的次數(shù)B的次數(shù)C的次數(shù)如何確定每

15、個字母在letter中的位置呢?A 對應(yīng) letter0B 對應(yīng) letter1C 對應(yīng) letter2下標(biāo):0 A-A下標(biāo):1 B-A 下標(biāo):2 C-A3數(shù)組運(yùn)用52022/7/18電氣與信息工程學(xué)院計(jì)算機(jī)系制造#include #define NUM 26 int main( ) int letterNUM = 0; char ch; int i; printf(nEnter text linen); while (ch=getchar() != n) if (A=ch & ch=Z) /* 檢測能否為大寫字母 */ letterch-A = letterch-A+1; else if (a=ch & ch=z) /* 檢

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論