版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章數(shù)組3.1一維數(shù)組的使用3.2二維數(shù)組的使用P71第3章數(shù)組3.1一維數(shù)組的使用P713.1.1輸入輸出學生10門課成績3.1.2數(shù)組中數(shù)據(jù)的復制3.1.3數(shù)組元素值的左右移動3.1.4數(shù)據(jù)查詢與數(shù)據(jù)統(tǒng)計3.1.5數(shù)組元素值的修改、刪除與插入3.1.6數(shù)組元素的排序3.1一維數(shù)組的使用P72返回3.1.1輸入輸出學生10門課成績3.1一維數(shù)組的使用P723.1.1輸入輸出學生10門課成績P72在C語言中經常用scanf函數(shù)輸入數(shù)據(jù),用printf函數(shù)輸出數(shù)據(jù),輸入輸出大量數(shù)據(jù)時也不例外,所不同的是在此需要使用數(shù)組。問題的提出3.1.1輸入輸出學生10門課成績P72在C語言中經常用sc【實
2、例3-1】編寫程序,從鍵盤輸入某學生高等數(shù)學、線性代數(shù)、軟件工程、大學英語、普通物理、大學語文、微機原理、匯編語言、數(shù)據(jù)結構和網頁設計等10門課成績,并在屏幕上顯示。任務與分析3.1.1輸入輸出學生10門課成績P72【實例3-1】編寫程序,從鍵盤輸入某學生高等數(shù)學、線性代數(shù)、操作步驟 處理10門課的成績,要定義10個變量,用10條輸入語句和10條輸出語句。 采用數(shù)組,只需要定義一個有10個元素的數(shù)組,利用循環(huán)逐個給數(shù)組元素輸入值,再利用循環(huán)逐個輸出每個數(shù)組元素。操作步驟 處理10門課的成績,要定義10個變量,用10條操作步驟#include main() 定義存放10個數(shù)據(jù)的數(shù)組chj及循環(huán)變
3、量i for(i=0; i10; i+)從鍵盤輸入成績賦給數(shù)組元素chji for(i=0; i10; i+) 輸出數(shù)組元素chji中的成績int chj10,i;scanf(%d,&chji);printf(%4d,chji);必須先定義后使用 和普通變量一樣 操作步驟#include int chj歸納分析一維數(shù)組的定義形式: 類型名 數(shù)組名常量表達式; 歸納分析每個元素所具有的數(shù)據(jù)類型 數(shù)組中包含的元素個數(shù) 歸納分析一維數(shù)組的定義形式:歸納分析每個元素所具有的數(shù)據(jù)類型歸納分析一維數(shù)組元素的表示形式: 數(shù)組名下標表達式歸納分析0數(shù)組長度 歸納分析一維數(shù)組元素的表示形式:歸納分析0數(shù)組長度
4、歸納分析歸納分析類型正確引用錯誤引用賦值a0=11 或ai=11或ai+2=a0+a1a=11輸入scanf(%d,&a2)scanf(%d,a)scanf(%d,&ai)scanf(%d,ai)輸出printf(%d,%dn, a1,ai)printf(%dn,a)歸納分析歸納分析類型正確引用錯誤引用賦值a0=11 或a動手練習3-1編寫程序,從鍵盤任意輸入10個整數(shù),然后按逆序輸出。如輸入1、2、3,4、5、6、7、8、9、10輸出是10、9、8、7、6、5、4、3、2、1P74動手練習3-1編寫程序,從鍵盤任意輸入10個整數(shù),然后按逆序3.1.2數(shù)組中數(shù)據(jù)的復制P74問題的提出在現(xiàn)實生活
5、中,經常需要對重要的數(shù)據(jù)進行備份復制。紙質的材料用復印機復制,電子版的材料可通過Windows中“復制”與“粘貼”的功能復制,程序中備份數(shù)據(jù)可通過賦值的方法實現(xiàn)。3.1.2數(shù)組中數(shù)據(jù)的復制P74問題的提出在現(xiàn)實生活中,經?!緦嵗?-2】編寫程序,隨機產生20個1000以內的數(shù)據(jù)存放在數(shù)組a中,并將該數(shù)組中的數(shù)據(jù)復制到數(shù)組b中。任務與分析3.1.2數(shù)組中數(shù)據(jù)的復制P74【實例3-2】編寫程序,隨機產生20個1000以內的數(shù)據(jù)存放操作步驟#include #include #include main()定義存放20個數(shù)據(jù)的數(shù)組a、b及循環(huán)變量i for(i=0; i20; i+) 隨機產生1000
6、內的數(shù)據(jù)存放在ai元素中 for(i=0; i20; i+) 將ai元素值賦給bi元素int a20,b20,i;ai=rand()%1000;隨機函數(shù) 操作步驟#include int a20操作步驟#include #include #include main()定義存放20個數(shù)據(jù)的數(shù)組a、b及循環(huán)變量i for(i=0; i20; i+) 隨機產生1000內的數(shù)據(jù)存放在ai元素中 for(i=0; i20; i+) 將ai元素值賦給bi元素int a20,b20,i;ai=rand()%1000;產生0至999間整數(shù) 如產生1至6:k=rand()%6+1;如產生10至99:k=rand
7、()%90+10;操作步驟#include int a20操作步驟#include #include #include main()定義存放20個數(shù)據(jù)的數(shù)組a、b及循環(huán)變量i for(i=0; i20; i+) 隨機產生1000內的數(shù)據(jù)存放在ai元素中 for(i=0; i20; i+) 將ai元素值賦給bi元素int a20,b20,i;ai=rand()%1000;用rand時加此行 加srand(time(0); 用time時加此行 操作步驟#include int a20操作步驟#include #include #include main()定義存放20個數(shù)據(jù)的數(shù)組a、b及循環(huán)變量i
8、 for(i=0; i20; i+) 隨機產生1000內的數(shù)據(jù)存放在ai元素中 for(i=0; i20; i+) 將ai元素值賦給bi元素int a20,b20,i;ai=rand()%1000;bi=ai;不能寫成b=a;或b10=a10; 加srand(time(0); 操作步驟#include int a20操作步驟 輸出a數(shù)組的數(shù)據(jù) 輸出b數(shù)組的數(shù)據(jù)printf(a array:n);for(i=0; i20; i+) printf(%8d,ai);printf(n);printf(“b array:n);for(i=0; i20; i+) printf(%8d,bi);printf
9、(n);操作步驟printf(a array:n);print【實例3-3】編寫程序,隨機產生20個1000以內的數(shù)據(jù)存放在數(shù)組a中,并將其中所有偶數(shù)復制到數(shù)組b中。P76【實例3-3】編寫程序,隨機產生20個1000以內的數(shù)據(jù)存放操作步驟#include #include #include main()定義存放20個數(shù)據(jù)的數(shù)組a、b及循環(huán)變量i、j for(i=0; i20; i+) 產生1000以內的數(shù)賦給ai int a20,b20,i,j;ai=rand()%1000;srand(time(0);操作步驟#include int a20操作步驟j=0;for(i=0; i20; i+)
10、 如果ai是偶數(shù),則 將ai的值賦給bj j增1 if(ai%2=0) bj=ai;j+;也起到記錄偶數(shù)個數(shù)的作用 操作步驟j=0;if(ai%2=0) bj=ai操作步驟 輸出a數(shù)組的數(shù)據(jù) 輸出b數(shù)組的數(shù)據(jù)printf(a array:n);for(i=0; i20; i+) printf(%8d,ai);printf(n);printf(“b array:n);for(i=0; ij; i+) printf(%8d,bi);printf(n);操作步驟printf(a array:n);print歸納分析數(shù)組的復制操作實際上是相同下標元素的賦值過程。從一個數(shù)組中挑選滿足條件的元素賦值給另一
11、個數(shù)組,利用這個方法可以構造一個新的數(shù)組。歸納分析歸納分析數(shù)組的復制操作實際上是相同下標元素的賦值過程。歸納分動手練習3-2數(shù)組1中存的是:“One world ”,數(shù)組2中存的是:“One dream”。編寫程序,要求將數(shù)組1和數(shù)組2中的內容復制到數(shù)組3中,然后輸出數(shù)組3的內容。P77動手練習3-2數(shù)組1中存的是:“One world ”,數(shù)組3.1.3數(shù)組元素值的左右移動P78在超市排隊交費時,前面的人交完費,后面的人依次向前移動一位,在程序中,數(shù)組中的數(shù)據(jù)有時也需要移動,其移動過程與人排隊移動的過程類似,也是逐位移動。問題的提出3.1.3數(shù)組元素值的左右移動P78在超市排隊交費時,前面的
12、【實例3-4】已知字符數(shù)組ch的長度設定為20,其內容是“I am a student.”,編寫程序,將字符數(shù)組中的全部內容向右移動一位,再給第一個元素補空格,并輸出結果。任務與分析3.1.3數(shù)組元素值的左右移動P78【實例3-4】已知字符數(shù)組ch的長度設定為20,其內容是“I操作步驟#include main() 定義并初始化ch字符數(shù)組 定義循環(huán)變量i 輸出ch數(shù)組的字符char ch20=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.;int i;數(shù)組初始化 若有int a8=1,2,3,4;10a23400123450067操作步驟#include char ch操作步驟#
13、include main() 定義并初始化ch字符數(shù)組 定義循環(huán)變量i 輸出ch數(shù)組的字符char ch20=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.;int i;數(shù)組初始化 若有char a8=1, 2, 3, 4;10a23400123450067操作步驟#include char ch操作步驟#include main() 定義并初始化ch字符數(shù)組 定義循環(huán)變量i 輸出ch數(shù)組的字符char ch20=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.;int i;printf(before move:n);for(i=0; i20; i+) printf(%c
14、,chi); printf(n);操作步驟#include char ch操作步驟 for(i=14; i=0; i-) 逐個將chi中的值賦給chi+1 ch0賦空格 輸出移動后的ch數(shù)組字符chi+1=chi;ch0= ;printf(after move:n);for(i=0; i=0; i-)ch歸納分析向右移動的順序是從被移數(shù)據(jù)的最右邊開始,向左移動的順序是從被移動數(shù)據(jù)的最左邊開始。全部數(shù)據(jù)的移動是使用循環(huán)語句對數(shù)組元素逐個進行的。需要注意的是正確確定循環(huán)變量的起止值。歸納分析歸納分析向右移動的順序是從被移數(shù)據(jù)的最右邊開始,向左移動的順動手練習3-3已知字符數(shù)組ch的長度設定為20,
15、其內容是“We are students.”,試編寫程序,將字符數(shù)組中的全部內容向左移動一位,并輸出移動結果。P80動手練習3-3已知字符數(shù)組ch的長度設定為20,其內容是“3.1.4數(shù)據(jù)查詢與數(shù)據(jù)統(tǒng)計P80查詢飛機的航班信息,統(tǒng)計商品的銷售情況等等。在C語言中處理此類問題時,可以使用數(shù)組和循環(huán)語句來實現(xiàn)。問題的提出3.1.4數(shù)據(jù)查詢與數(shù)據(jù)統(tǒng)計P80查詢飛機的航班信息,統(tǒng)計商【實例3-5】已知數(shù)組s中存有以下數(shù)據(jù):12、9、7、11、10、15、13、14、16和8,編寫程序,用戶從鍵盤輸入一個數(shù)據(jù),從數(shù)組中找出該數(shù)據(jù)。任務與分析3.1.4數(shù)據(jù)查詢與數(shù)據(jù)統(tǒng)計P80【實例3-5】已知數(shù)組s中存有
16、以下數(shù)據(jù):12、9、7、11、操作步驟#include main()初始化數(shù)組s,定義變量x和i 輸出數(shù)組s中所有元素的值 輸入待查找的數(shù)據(jù)賦給x int s10=12,9,7,11,10,15,13,14,16,8; int x,i;for(i=0; i10; i+)printf(%4d,si);printf(n);printf(請輸入要查找的數(shù)據(jù):);scanf(%d,&x);操作步驟#include int s10操作步驟 for(i=0; i10; i+)如果si的值與x的值相等, 則循環(huán)結束 if(i10) 則輸出i的值 else 輸出“該數(shù)據(jù)不存在!” if(si=x)break;
17、printf(s%d=%dn,i,si);printf(該數(shù)據(jù)不存在!n);找到數(shù)據(jù)時提前結束 提前結束 正常結束 操作步驟 for(i=0; i10; i+)if(【實例3-6】某班學號從1至10的10名學生大學英語的考試成績分別是67、84、79、 71、85、60、93、75、96和81分。編程找出考分最高的學生。P81【實例3-6】某班學號從1至10的10名學生大學英語的考試成操作步驟#include main()初始化n數(shù)組,定義變量max和i、j 將n1中的值賦給變量max,j記錄為1 for(i=2; imax, 則 max=ni; j=i; 輸出最大值與j記錄的下標int n1
18、1=0,67,84,79,71,85,60, 93,75,96,81,max,i,j;max=n1; j=1;if(nimax) max=ni; j=i; printf(max=%d i=%dn,max,j);學號與下標一致 可否采用只記住下標的方法? 操作步驟#include int n11操作步驟#include main()初始化n數(shù)組,定義變量max和i、j 將n1中的值賦給變量max,j記錄為1 for(i=2; imax, 則 max=ni; j=i; 輸出最大值與j記錄的下標int n11=0,67,84,79,71,85,60, 93,75,96,81,max,i,j;max=
19、n1; j=1;if(nimax) max=ni; j=i; printf(max=%d i=%dn,max,j);nj nj 操作步驟#include int n11【實例3-7】“五一”黃金周期間,某旅游景區(qū)在7天假期中每天接待的旅游人數(shù)統(tǒng)計如下表所示:日期1日2日3日4日5日6日7日人數(shù)(萬)1.83.32.92.42.11.70.8編寫程序,統(tǒng)計出7天長假共接待了多少游客,平均每天多少人,高于平均數(shù)的有哪些天?!緦嵗?-7】“五一”黃金周期間,某旅游景區(qū)在7天假期中每操作步驟#include main() 定義并初始化一維數(shù)組p8及變量v=0 定義循環(huán)變量i for(i=1; i8;
20、i+) 累計7天接待的游客數(shù)量 輸出7天共接待的游客數(shù)量及平均每天接待的游客量double p8=0,1.8,3.3,2.9, 2.4,2.1,1.7,0.8,v=0;int i;v=v+pi;printf(7天共接待游客%.1f萬人,平均每天接待%.1f萬人n,v,v/7);操作步驟#include double p操作步驟 計算平均每天接待游客的數(shù)量 for(i=1; i平均數(shù) 輸出對應的日期v=v/7;if(piv)printf(5月%d日 ,i); 操作步驟 計算平均每天接待游客的數(shù)量v=v/7【實例3-8】輸入某個學生一年12個月花銷的錢數(shù),編程分別統(tǒng)計出200元以上、200100元
21、和100元以下各有幾個月,并計算出一年總的花銷數(shù)。P84【實例3-8】輸入某個學生一年12個月花銷的錢數(shù),編程分別統(tǒng)操作步驟#include main()定義m13、p、a1、a2、a3及i 變量p、a1、a2、a3賦初值為0 for(i=1; i13; i+) 輸入每個月的消費數(shù) 累加每個月的消費數(shù) float m13,p;int i,a1,a2,a3;p=a1=a2=a3=0;scanf(%f,&mi);p=p+mi;操作步驟#include float m操作步驟for(i=1; i13; i+) 輸出每個月的消費數(shù)輸出一年總的消費數(shù) printf(n每月消費數(shù)情況:n); for(i=
22、1; i13; i+) printf(%2d月:%-8.1f,i,mi); if(i%6=0) printf(n); printf(n一年消費總數(shù):%.1fnn,p);保證一行顯示6個 左對齊 操作步驟printf(n每月消費數(shù)情況:n); pr操作步驟 for(i=1; i200 a1+; 否則 如果mi=100 a2+; 否則 a3+; 輸出消費在200元以上、200100元和 100元的月數(shù) if(mi200) a1+;else if(mi=100) a2+;else a3+;printf(大于200元有%d個月,200-100元有%d個月,小于100元有%d個月n,a1,a2,a3);
23、操作步驟 for(i=1; i13; i+)if(歸納分析(1)對數(shù)組中數(shù)據(jù)進行查找時,通過循環(huán)逐一進行比較。程序代碼一般為: for(i=0; i數(shù)組長度; i+) if(數(shù)組名i=被查數(shù)據(jù)) break;(2)對數(shù)組中的數(shù)據(jù)進行統(tǒng)計,一般經過兩步操作,第一步對數(shù)組元素進行篩選,可以用if語句,也可以使用swtich語句;第二步進行統(tǒng)計。歸納分析歸納分析(1)對數(shù)組中數(shù)據(jù)進行查找時,通過循環(huán)逐一進行比較。動手練習3-4某市2005年4月份一周空氣質量報告中某項污染指數(shù)的數(shù)據(jù)是:28 30 29 33 31 32 27。經過一年治理,2006年同期的空氣質量報告中該項污染指數(shù)的數(shù)據(jù)是:25 2
24、6 28 30 27 25 26。編寫程序,計算2005年與2006年該周每天污染指數(shù)的差值和兩個最高污染指數(shù)的差。P86動手練習3-4某市2005年4月份一周空氣質量報告中某項污染動手練習3-52002年某地區(qū)5月份10天的最高氣溫依次是():30 31 30 32 32 33 33 32 31 32。編寫程序,分別統(tǒng)計出32和33各占多少天。P86動手練習3-52002年某地區(qū)5月份10天的最高氣溫依次是(3.1.5數(shù)組元素值的修改、刪除與插入P86因天氣原因需要修改航班的起飛時間、從銷售清單中刪除不合格的物品名稱、職工庫中添加新來人員的信息等。問題的提出3.1.5數(shù)組元素值的修改、刪除與
25、插入P86因天氣原因需要修【實例3-9】某超市將所有商品的銷售價格存放在一維數(shù)組中,數(shù)組下標代表商品的編號。編寫程序,輸入商品的編號,修改該商品的銷售價格。任務與分析3.1.5數(shù)組元素值的修改、刪除與插入P86【實例3-9】某超市將所有商品的銷售價格存放在一維數(shù)組中,數(shù)操作步驟#include main() 定義并初始化price數(shù)組及變量i 輸入需修改的商品編號 如果輸入的商品編號存在,則 顯示該商品的銷售價格 輸入新的價格 顯示修改后的價格 否則 顯示輸入的商品不存在的信息double k,price21=0,3.1,0.6,4.8,9.9, 11.2,15.4,13.5,78.9,36.
26、2,42.8,22.0, 28.0, 32.6,48.1,52.5,86.4,66.6, 72.9,25.6,37.8; int i;操作步驟#include double k操作步驟#include main() 定義并初始化price數(shù)組及變量i 輸入需修改的商品編號 如果輸入的商品編號存在,則 顯示該商品的銷售價格 輸入新的價格 顯示修改后的價格 否則 顯示輸入的商品不存在的信息scanf(%d,&i);if(i0 & i21)printf(%d %.1lf,i,pricei);scanf(%lf,&k); pricei=k; 操作步驟#include scanf(%操作步驟#inclu
27、de main() 定義并初始化price數(shù)組及變量i 輸入需修改的商品編號 如果輸入的商品編號存在,則 顯示該商品的銷售價格 輸入新的價格 顯示修改后的價格 否則 顯示輸入的商品不存在的信息scanf(%d,&i);if(i0 & i21)printf(%d %.1lf,i,pricei);scanf(%lf,&k); pricei=k; for(i=1; i21; i+) printf(%d: %.1lft,i,pricei); if(i%5=0) printf(n);操作步驟#include scanf(%操作步驟#include main() 定義并初始化price數(shù)組及變量i 輸入需
28、修改的商品編號 如果輸入的商品編號存在,則 顯示該商品的銷售價格 輸入新的價格 顯示修改后的價格 否則 顯示輸入的商品不存在的信息printf(該編號不存在!n);操作步驟#include printf(【實例3-10】在一個一維字符數(shù)組中存放著以下字符:“Good morining.”。發(fā)現(xiàn)第9個字符“i”是多余的。編寫程序,刪除該字符。P89【實例3-10】在一個一維字符數(shù)組中存放著以下字符:“Goo操作步驟#include main() 初始化ch字符數(shù)組,定義變量i 顯示刪除前的字符數(shù)組 for(i=8; i14; i+)chi字符左移一位 顯示刪除后的字符數(shù)組char ch15=G,
29、o,o,d, ,m, o,r,i,n,i,n,g,.;int i;操作步驟#include char ch操作步驟#include main() 初始化ch字符數(shù)組,定義變量i 顯示刪除前的字符數(shù)組 for(i=8; i14; i+)chi字符左移一位 顯示刪除后的字符數(shù)組printf(字符刪除前: );for(i=0; i15; i+) printf(%c,chi);printf(n);chi=chi+1;printf(字符刪除后: );for(i=0; i14; i+) printf(%c,chi);printf(n);操作步驟#include printf(【實例3-11】在一個一維字符
30、數(shù)組中存放著以下字符:“ourmotherland”。編寫程序,實現(xiàn)在字母m前插入一個空格。P90【實例3-11】在一個一維字符數(shù)組中存放著以下字符:“our操作步驟#include main() 定義并初始化ch字符數(shù)組,定義變量i 顯示插入前字符數(shù)組 for(i=最后一個字符所在的下標; i=3; i-) chi的值右移一位 給ch3賦空格 顯示插入空格后的字符數(shù)組char ch15=o,u,r,m,o,t,h, e,r,l,a,n,d;int i;操作步驟#include char ch操作步驟#include main() 定義并初始化ch字符數(shù)組,定義變量i 顯示插入前字符數(shù)組 fo
31、r(i=最后一個字符所在的下標; i=3; i-) chi的值右移一位 給ch3賦空格 顯示插入空格后的字符數(shù)組printf(字符插入前: );for(i=0; i=3; i-)chi+1=chi;ch3= ;printf(字符插入后: );for(i=0; i14; i+) printf(%c,chi);printf(n);操作步驟#include printf(歸納分析修改、刪除、插入操作,首先要知道數(shù)據(jù)所存放的元素下標。若不清楚,就要使用查找方法找到所需下標。歸納分析歸納分析修改、刪除、插入操作,首先要知道數(shù)據(jù)所存放的元素下標歸納分析修改、刪除、插入操作,首先要知道數(shù)據(jù)所存放的元素下標。
32、若不清楚,就要使用查找方法找到所需下標。修改數(shù)組中的數(shù)據(jù),只需將新數(shù)據(jù)賦值到待修改數(shù)據(jù)的元素中即可。歸納分析歸納分析修改、刪除、插入操作,首先要知道數(shù)據(jù)所存放的元素下標歸納分析刪除數(shù)組中的數(shù)據(jù)x,只需將x后面的(不包含x)全部數(shù)據(jù)向左移一位即可。歸納分析歸納分析刪除數(shù)組中的數(shù)據(jù)x,只需將x后面的(不包含x)全部數(shù)歸納分析刪除數(shù)組中的數(shù)據(jù)x,只需將x后面的(不包含x)全部數(shù)據(jù)向左移一位即可。程序代碼框架一般為:for(i=存放x的元素下標; i=j; i-) 數(shù)組名i+1=數(shù)組名i;數(shù)組名j=y;歸納分析歸納分析在x數(shù)據(jù)前插入數(shù)據(jù)y,只需將x(包含x)及以后的全部歸納分析在x數(shù)據(jù)后插入數(shù)據(jù)y,只
33、需向右移動x后面的數(shù)據(jù),不包含x,然后再將插入數(shù)據(jù)y賦值到x后面的元素中。歸納分析歸納分析在x數(shù)據(jù)后插入數(shù)據(jù)y,只需向右移動x后面的數(shù)據(jù),不包歸納分析在x數(shù)據(jù)后插入數(shù)據(jù)y,只需向右移動x后面的數(shù)據(jù),不包含x,然后再將插入數(shù)據(jù)y賦值到x后面的元素中。程序代碼框架一般為(假設存放x元素的下標是j):for(i=數(shù)組長度-2; i=j+1; i-) 數(shù)組名i+1=數(shù)組名i;數(shù)組名j+1=y;歸納分析歸納分析在x數(shù)據(jù)后插入數(shù)據(jù)y,只需向右移動x后面的數(shù)據(jù),不包動手練習3-6在試卷大檢查中,隨機抽取了10份英語試卷,其成績分別是:65,77,89,90,82,71,63,98,58,73。經檢查核對,發(fā)
34、現(xiàn)其中98分的試卷給分有誤,應是97分,58分的試卷應是56分。編寫程序,原成績作為數(shù)組的初始值,修改后輸出新的成績。P92動手練習3-6在試卷大檢查中,隨機抽取了10份英語試卷,其成動手練習3-7某電視臺舉辦的民歌電視大賽上,六位評委給1號選手的評分應是92、98、95、97、91、94,但誤記錄為92、98、98、95、97、91、94。編寫程序,去掉第1個98分。P92動手練習3-7某電視臺舉辦的民歌電視大賽上,六位評委給1號選動手練習3-8編寫程序,將字符數(shù)組中的“He is a old student.”改為“He is an old student.”。P92動手練習3-8編寫程序
35、,將字符數(shù)組中的“He is a ol3.1.6數(shù)組元素的排序P92節(jié)能辦對各單位用電量的情況進行排序,以便找出用電大戶,幼兒園對孩子們身高、體重情況進行排序,以便研究孩子身體的增長情況等等。問題的提出3.1.6數(shù)組元素的排序P92節(jié)能辦對各單位用電量的情況進行【實例3-12】編寫程序,任意輸入8名學生的身高,然后按從高到低排序后輸出。任務與分析3.1.6數(shù)組元素的排序P92【實例3-12】編寫程序,任意輸入8名學生的身高,然后按從高1590g1551561781581721234516516867從8個元素中找出最大元素 k=0; for(j=1; j8; j+) if(gkgj) k=j;
36、1590g1551561781581721234516510g1234567最大元素與第1個元素對調 k=0; for(j=1; j8; j+) if(gkgj) k=j;tmp=g0;g0=gk;gk=tmp; 1591551561781581721651680g1234567最大元素與第1個元素對調 k=0; 0g1234567最大元素與第1個元素對調 k=0; for(j=1; j8; j+) if(gkgj) k=j;tmp=g0;g0=gk;gk=tmp; 1781551561591581721651680g1234567最大元素與第1個元素對調 k=0; 0g1234567從后7個
37、元素中找出最大元素 k=1; for(j=2; j8; j+) if(gkgj) k=j;1781551561591581721651680g1234567從后7個元素中找出最大元素 k=1; 0g1234567k=1; for(j=2; j8; j+) if(gkgj) k=j;最大元素與第2個元素對調 tmp=g1;g1=gk;gk=tmp; 1781551561591581721651680g1234567k=1; 最大元素與第2個元素對調0g1234567k=1; for(j=2; j8; j+) if(gkgj) k=j;最大元素與第2個元素對調 tmp=g1;g1=gk;gk=tm
38、p; 1781721561591581551651680g1234567k=1; 最大元素與第2個元素對調0g1234567從后6個元素中找出最大元素 k=2; for(j=3; j8; j+) if(gkgj) k=j;1781721561591581551651680g1234567從后6個元素中找出最大元素 k=2; 0g1234567k=2; for(j=3; j8; j+) if(gkgj) k=j;最大元素與第3個元素對調 tmp=g2;g2=gk;gk=tmp; 1781721561591581551651680g1234567k=2; 最大元素與第3個元素對調0g1234567
39、最大元素與第3個元素對調 排序k=i; for(j=i+1; j8; j+) if(gkgj) k=j; tmp=gi; gi=gk; gk=tmp; for(i=0; i7; i+) 1781721681591581551651560g1234567最大元素與第3個元素對調 排序k=i; 操作步驟#include main() 定義數(shù)組及變量tmp、i、j、k 輸入8名學生的身高 顯示排序前的數(shù)組 for(i=0; i7; i+) gi至g7中最大值下標記錄在k中 將gk和gi進行交換 顯示排序后的數(shù)組int g8,tmp,i,j,k;操作步驟#include int g8操作步驟#incl
40、ude main() 定義數(shù)組及變量tmp、i、j、k 輸入8名學生的身高 顯示排序前的數(shù)組 for(i=0; i7; i+) gi至g7中最大值下標記錄在k中 將gk和gi進行交換 顯示排序后的數(shù)組printf(Enter 8 data:);for(i=0; i8; i+) scanf(%d,&gi);操作步驟#include printf(操作步驟#include main() 定義數(shù)組及變量tmp、i、j、k 輸入8名學生的身高 顯示排序前的數(shù)組 for(i=0; i7; i+) gi至g7中最大值下標記錄在k中 將gk和gi進行交換 顯示排序后的數(shù)組printf(排序前:);for(i
41、=0; i8; i+) printf(%6d,gi); printf(n);操作步驟#include printf(操作步驟#include main() 定義數(shù)組及變量tmp、i、j、k 輸入8名學生的身高 顯示排序前的數(shù)組 for(i=0; i7; i+) gi至g7中最大值下標記錄在k中 將gk和gi進行交換 顯示排序后的數(shù)組k=i;for(j=i+1; j8; j+) if(gkgj) k=j; tmp=gi;gi=gk;gk=tmp;操作步驟#include k=i;tmp操作步驟#include main() 定義數(shù)組及變量tmp、i、j、k 輸入8名學生的身高 顯示排序前的數(shù)組
42、for(i=0; i7; i+) gi至g7中最大值下標記錄在k中 將gk和gi進行交換 顯示排序后的數(shù)組printf(排序后:);for(i=0; i8; i+)printf(%6d,gi);printf(n);操作步驟#include printf(【實例3-13】某部門一年12個月的用電量如下所示,編寫程序,要求按用電量進行升序排列,并輸出用電量和對應月份。月份123456電量570420620480320410P94【實例3-13】某部門一年12個月的用電量如下所示,編寫程序定義2個一維數(shù)組: 電量數(shù)組和月份數(shù)組月份123456電量570420620480320410當電量數(shù)組進行排序
43、時,月份數(shù)組也要相應排序。定義2個一維數(shù)組:月份123456電量5704206204操作步驟#include main() 定義電量數(shù)組與月份數(shù)組,并初始化 定義整型變量i、j、k及tmp 輸出每月的電量int elec13=0,570,420,620,480, 320,410,640,660,540,360,520, 490,month13=0,1,2,3,4, 5,6,7,8,9,10,11,12,i,j,k,tmp;printf( 每月用電量如下:n);printf( 月份:);for(i=1; i13; i+)printf(%6d,monthi);printf(n);printf( 電
44、量:);for(i=1; i13; i+)printf(%6d,eleci);printf(nn);操作步驟#include int elec操作步驟 for(i=1; i13; i+) 找電量數(shù)組中最小值下標,并記錄在k中 交換電量數(shù)組中兩個元素 交換月份數(shù)組中兩個元素 輸出排序后的電量和對應月份 k=i;for(j=i+1; j13; j+) if(elecjeleck) k=j; 操作步驟 for(i=1; i13; i+)k=i操作步驟 for(i=1; i13; i+) 找電量數(shù)組中最小值下標,并記錄在k中 交換電量數(shù)組中兩個元素 交換月份數(shù)組中兩個元素 輸出排序后的電量和對應月份
45、tmp=eleci;eleci=eleck;eleck=tmp;tmp=monthi;monthi=monthk;monthk=tmp;操作步驟 for(i=1; i13; i+)tmp操作步驟 for(i=1; i13; i+) 找電量數(shù)組中最小值下標,并記錄在k中 交換電量數(shù)組中兩個元素 交換月份數(shù)組中兩個元素 輸出排序后的電量和對應月份 printf( 每月用電量排序后如下:n);printf( 月份:);for(i=1; i13; i+)printf(%6d,monthi);printf(n);printf( 電量:);for(i=1; i13; i+)printf(%6d,eleci
46、);printf(n);操作步驟 for(i=1; i13; i+)pri歸納分析選擇排序法含有兩個算法,一個是找最大(?。┲档南聵?,另一個是數(shù)據(jù)交換。歸納分析一維數(shù)組的排序需要用雙層循環(huán)來完成。歸納分析選擇排序法含有兩個算法,一個是找最大(?。┲档南聵耍瑲w納分析假設數(shù)組a長度是length,對a數(shù)組按升序排列程序如下: for(i=0; ilength-1; i+) k=i; for(j=i+1; jlength; j+) if(ajak) k=j; tmp=ai; ai=ak; ak=tmp;歸納分析歸納分析假設數(shù)組a長度是length,對a數(shù)組按升序排列程序動手練習3-9編寫程序,隨意從
47、鍵盤輸入一些字母,然后將其按字母升序排序后輸出。P96動手練習3-9編寫程序,隨意從鍵盤輸入一些字母,然后將其按字動手練習3-10編寫程序,輸入班里20名同學的學號及他們的英語期末考試成績,然后按成績由高到低的順序將學號和成績打印出來。P96動手練習3-10編寫程序,輸入班里20名同學的學號及他們的英3.2.1輸入輸出5名學生10門課成績3.2.2 比較2名學生各門課的成績3.2.3 查公交車費3.2二維數(shù)組的使用P96返回3.2.1輸入輸出5名學生10門課成績3.2二維數(shù)組的使用P超市每天各種商品的銷售情況、車間中每個工人每天生產零件的個數(shù)、學生上課的課表等等,當需要用表格形式輸出時,一般使
48、用二維數(shù)組。 問題的提出3.2.1輸入輸出5名學生10門課成績P96超市每天各種商品的銷售情況、車間中每個工人每天生產零件的個數(shù)任務與分析【實例3-14】編寫程序,從鍵盤輸入5名學生的高等數(shù)學、線性代數(shù)、軟件工程、大學英語、普通物理、大學語文、微機原理、匯編語言、數(shù)據(jù)結構和網頁設計等10門課成績,并在屏幕上顯示。3.2.1輸入輸出5名學生10門課成績P96任務與分析【實例3-14】編寫程序,從鍵盤輸入5名學生的高等8073899267788680746656677782718890655777677867629072869167587479685278917383936957825990668
49、793748195第1個學生的第1門課程成績 第1個學生的第2門課程成績 第2個學生的第1門課程成績 第2個學生的第2門課程成績 807389926778868074665667778271操作步驟#include main() 定義一個二維數(shù)組及循環(huán)變量i、j for(i=1; i6; i+)for(j=1; i11; j+) 輸入課程成績賦給對應的數(shù)組元素 顯示5名學生各課程的成績 int chj611,i,j; scanf(%d,&chjij);for(i=1; i6; i+) printf(%d,i); for(j=1; j11; j+) printf(%6d,chjij); prin
50、tf(n);6行11列 按表格形式輸出 操作步驟#include int chj二維數(shù)組的定義形式:類型名 數(shù)組名常量表達式1常量表達式2;歸納分析行數(shù)列數(shù)二維數(shù)組元素的表示形式: 數(shù)組名下標表達式1下標表達式2chj00、chj01、chj010 chj00、chj10、chj50二維數(shù)組的定義形式:歸納分析行數(shù)列數(shù)二維數(shù)組元素的表示形式:要引用全部元素通常使用雙重循環(huán),按行引用元素時,其外層循環(huán)變量代表行下標,內層循環(huán)變量代表列下標。歸納分析要引用全部元素通常使用雙重循環(huán),按行引用元素時,其外層循環(huán)變動手練習3-11編寫程序,將5個好友的聯(lián)絡信息存入二維數(shù)組后輸出。信息表結構如下:學號QQ
51、號手機號家庭電話出生日期P99動手練習3-11編寫程序,將5個好友的聯(lián)絡信息存入二維數(shù)組后北京一季度空氣質量達到優(yōu)的天數(shù)比去年同一季度增加了多少天,第3季度的用電負荷量比第2季度增加了百分之幾,近三年新生兒的出生率為多少等等,數(shù)據(jù)比較在日常生活中是經常遇到的。問題的提出3.2.2 比較2名學生各門課的成績P99北京一季度空氣質量達到優(yōu)的天數(shù)比去年同一季度增加了多少天,第【實例3-15】編寫程序,比較2名學生一學年的課程成績。假設A、B學生成績如下所示,A學生與B學生按學期分別比較每門課的成績,當A學生成績高于B學生時,記錄為1,成績相等時記錄為0,低于B學生的成績,記錄為-1。任務與分析3.2
52、.2 比較2名學生各門課的成績P99【實例3-15】編寫程序,比較2名學生一學年的課程成績。假設任務與分析學生A成績學生B成績數(shù)學語文英語數(shù)學語文英語第1學期788389第1學期808392第2學期818590第2學期8683783.2.2 比較2名學生各門課的成績P99任務與分析學生A成績學生B成績數(shù)學語文英語數(shù)學語文英語第1學操作步驟#include main() 定義a和b兩個二維數(shù)組,并賦初值 定義二維數(shù)組c及循環(huán)變量i、jint a23=78,83,89,81,85,90;int b23=80,83,92,86,83,78;int c23,i,j;操作步驟#include int a2操作步驟for(i=0; i2; i+) for(j=0; jbij)cij=1;else if(aij=bij)cij=0;elsecij=-1;操作步驟for(i=0; i2; i+)if(ai操作步驟 輸出a數(shù)組 輸出b數(shù)組 輸出c數(shù)組printf(Array a:n);for(i=0; i2; i+) for(j=0; j3; j+) printf(%4d,aij); printf(n); printf(Array b:n);for(i=0; i2; i+) for(j=0; j3; j+) printf(%4d,bij); printf(n); print
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一本書的演講稿
- 勞務招聘考試題及答案
- 口腔助力考試題及答案
- 金華電工考試題及答案
- 擊劍考試題目及答案
- 護理搬運考試題及答案
- 孤島野犬考試題及答案
- 輸蔗破碎工崗前實操知識能力考核試卷含答案
- 法邏考試題及答案
- 電機控制考試題及答案
- 2026年遼寧金融職業(yè)學院單招職業(yè)技能測試題庫附答案解析
- 2026北京海淀初三上學期期末語文試卷和答案
- 2024-2025學年北京市東城區(qū)五年級(上)期末語文試題(含答案)
- 人工智能在醫(yī)療領域的應用
- 2025年廣東省茂名農墾集團公司招聘筆試題庫附帶答案詳解
- 2026年寧夏賀蘭工業(yè)園區(qū)管委會工作人員社會化公開招聘備考題庫帶答案詳解
- NB-T32036-2017光伏發(fā)電工程達標投產驗收規(guī)程
- 2015-2022年北京衛(wèi)生職業(yè)學院高職單招語文/數(shù)學/英語筆試參考題庫含答案解析
- 賽膚潤常見臨床應用2010年
- 提高鋁模板施工質量合格率
- 傳感器與檢測技術習題集
評論
0/150
提交評論