C語言程序設(shè)計(jì)教程第6章數(shù)組課件.ppt
《C語言程序設(shè)計(jì)教程第6章數(shù)組課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計(jì)教程第6章數(shù)組課件.ppt(56頁珍藏版)》請?jiān)趨R文網(wǎng)上搜索。
1、1,第6章 數(shù) 組,北京科技大學(xué) 計(jì)算機(jī)系,C 語言程序設(shè)計(jì),2022/7/28,2,第6章 數(shù)組,本章重點(diǎn)介紹 :6.1 一維數(shù)組6.2 二維數(shù)組6.3 字符數(shù)組與字符串,2022/7/28,3,第6章 數(shù)組,一個(gè)人N門課的成績怎樣存儲和處理?一個(gè)班N門課的成績怎樣存儲和處理?.,這些數(shù)據(jù)的特點(diǎn):具有相同的數(shù)據(jù)類型。 為了方便地使用這些數(shù)據(jù),C語言提供了一種構(gòu)造數(shù)據(jù)類型:數(shù)組。例如:存儲學(xué)生成績用實(shí)型數(shù)組 score5其中:score是數(shù)組名。該數(shù)組可以存放5個(gè)成績,分別用下標(biāo)變量表示:score0,score1,score4。 下標(biāo)變量也稱為數(shù)組元素。,2022/7/28,4,6.1 一維
2、數(shù)組,例如: int a10; float score5; “數(shù)據(jù)類型”: 是數(shù)組元素的數(shù)據(jù)類型?!皵?shù)組名”: 遵循C語言標(biāo)識符規(guī)則?!俺A勘磉_(dá)式”:表示數(shù)組中有多少個(gè)元素,即數(shù)組的長度。它可以是整型常量、整型常量表達(dá)式或符號常量。,6.1.1 一維數(shù)組的定義,數(shù)據(jù)類型 數(shù)組名常量表達(dá)式;,2022/7/28,5,以下數(shù)組定義是正確的:#define N 10float score1N, score2N;int num10+N;char c26;,以下數(shù)組定義是不正確的:int array(10); int n; float scoren; double ba. d; char str ;,6
3、.1.1 一維數(shù)組的定義(續(xù)),2022/7/28,6,數(shù)組在內(nèi)存的存放,數(shù)組下標(biāo)從0開始。一維數(shù)組的數(shù)組元素在內(nèi)存里按順序存放。數(shù)組名代表數(shù)組的首地址,即score的值與score0 的地址值相同。,score數(shù)組,2022/7/28,7,6.1.2 數(shù)組元素的引用,格式:,例如:輸入學(xué)生成績 for(i=0;i5;i+) scanf(%f,例如:fibn=fibn-1+fibn-2;,下標(biāo)表達(dá)式的值必須是整型表達(dá)式。,數(shù)組名下標(biāo)表達(dá)式,2022/7/28,8,6.1.2 數(shù)組元素的引用(續(xù)),說明: 下標(biāo)從0開始(下界為0),數(shù)組的最大下標(biāo)(上界)是數(shù)組長度減1。 例如: int a10;
4、 scanf (%d, /* 下標(biāo)越界 */,C編譯系統(tǒng)不做越界檢查,如果引用的數(shù)組元素超出數(shù)組范圍會破壞其他變量的值。,2022/7/28,9,6.1.2 數(shù)組元素的引用(續(xù)), 是下標(biāo)運(yùn)算符,引用數(shù)組元素時(shí),根據(jù)數(shù)組的首地址和下標(biāo)數(shù),計(jì)算出該元素的實(shí)際地址,取出該地址的內(nèi)容進(jìn)行操作。,如引用 score2:(1)計(jì)算 2000+2*4=2008(2)取出2008的內(nèi)容,2022/7/28,10,6.1.3 一維數(shù)組的初始化,初始化:在定義數(shù)組時(shí)給數(shù)組元素賦初值。,1在定義數(shù)組時(shí),對全部數(shù)組元素賦初值 例如:int a5=0,1,2,3,4;此時(shí)可以省略數(shù)組長度,例如:int a =0,1,
5、2,3,4;2在定義數(shù)組時(shí),對部分?jǐn)?shù)組元素賦初值 例如:int a5=1,2,3;系統(tǒng)為其余元素賦 0 。3當(dāng)初值的個(gè)數(shù)多于數(shù)組元素的個(gè)數(shù)時(shí),編譯出錯(cuò) 例如: int a5=0,1,2,3,4,5;,2022/7/28,11,6.1.4 一維數(shù)組應(yīng)用舉例,【例6.1】將10個(gè)人的成績輸入計(jì)算機(jī)后按逆序顯示。#define N 10main( ) int i;float scoreN; for (i=0; i=0; i-) printf(%6.1f,scorei); ,運(yùn)行情況如下:67 74 89 92 34 67 83 95 73 78 78.0 73.0 95.0 83.0 67.0 34
6、.0 92.0 89.0 74.0 67.0,2022/7/28,12,【例6.2】輸入5個(gè)整數(shù),找出最大數(shù)和最小數(shù)所在位置,并把二者對調(diào),然后輸出。,思路:求最大/小值采用打擂臺的方法。定義一維數(shù)組a存放被比較的數(shù)。定義變量max:最大值, min:最小值, k:最大值下標(biāo) , j:最小值下標(biāo) 。各數(shù)依次與擂主進(jìn)行比較, 若aimax 則: max=ai; k=i; 否則判斷: 若aimin 則: min=ai; j=i; 當(dāng)所有的數(shù)都比較完之后,將aj=max; k=min;輸出a數(shù)組。,2022/7/28,13,main( ) int a5,max,min,i,j,k; for(i=0;
7、 imax) max=ai; k=i ; aj=max; ak=min; for (i=0; i5; i+) printf(%5d,ai); printf(n); ,程序運(yùn)行情況如下:5 7 2 3 15 1 2 3 7,2022/7/28,14,【例6.4】冒泡法排序(從小到大)。,以6個(gè)數(shù):3、7、5、6、8、0為例。,第一趟排序情況如下: 3 7 5 6 8 0第一次 3和7比較,不交換 3 7 5 6 8 0第二次 7和5比較,交換 3 5 7 6 8 0第三次 7和6比較,交換 3 5 6 7 8 0第四次 7和8比較,不交換 3 5 6 7 8 0第五次 8和0比較,交換 3 5
8、6 7 0 8在第一趟排序中,6個(gè)數(shù)比較了5次,把6個(gè)數(shù)中的最大數(shù)8排在最后。,2022/7/28,15,冒泡法排序 (續(xù)),第二趟排序情況如下: 3 5 6 7 0 8第一次 3和5比較,不交換 3 5 6 7 0 8第二次 5和6比較,不交換 3 5 6 7 0 8第三次 6和7比較,不交換 3 5 6 7 0 8第四次 7和0比較,交換 3 5 6 0 7 8在第二趟排序中,最大數(shù)8不用參加比較,其余的5個(gè)數(shù)比較了4次,把其中的最大數(shù)7排在最后,排出7 8。 以此類推:第三趟比較3次,排出 6 7 8第四趟比較2次,排出 5 6 7 8第五趟比較1次,排出 3 5 6 7 8最后還剩下1
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
10 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 語言程序設(shè)計(jì) 教程 數(shù)組 課件