第16次(一維數(shù)組).ppt_第1頁
第16次(一維數(shù)組).ppt_第2頁
第16次(一維數(shù)組).ppt_第3頁
第16次(一維數(shù)組).ppt_第4頁
第16次(一維數(shù)組).ppt_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、,IT Education scanf(“%d”, ,在“學(xué)生成績管理系統(tǒng)”中,我們需要對多個學(xué)生進行處理,比如100個學(xué)生,是否必須定義100個變量呢? Student stu1; Student stu2; Student stu3; Student stu100; 定義多個變量,在定義、輸入、輸出、處理的時候非常不方便。 如果需要處理5000個學(xué)生的成績,情況就更糟。,問題2,以上兩個例子有什么共同之處?,問題2,具有相同的數(shù)據(jù)類型!,數(shù)組的概念,數(shù)組是一組變量,滿足下列條件:(1)具有相同的名字(2)具有相同的數(shù)據(jù)類型(3)在存儲器中連續(xù)存放 每個變量名字相同下標不同,稱為“數(shù)組元素”

2、 “數(shù)組名”代表整個數(shù)組,其值是這組變量在內(nèi)存中所占連續(xù)存儲空間的首地址。 數(shù)組要先定義后使用。 數(shù)組名不能與相同作用域的其他變量名重名,問題,如何定義數(shù)組? 如何為數(shù)組元素賦值? 如何引用數(shù)組元素?,一維數(shù)組的定義,一維數(shù)組: 只有一個下標的數(shù)組 定義形式為:類型說明符 數(shù)組名常量表達式 例如: int a10; 說明 數(shù)組名為a 數(shù)組中每個元素的數(shù)據(jù)類型為int類型 10個數(shù)組元素 內(nèi)是常量表達式,不能為變量,1、定義100個整型變量 2、定義50個浮點型變量 3、定義1000個“學(xué)生”變量,“學(xué)生”類型定義如下: typedef struct char acNum10; char acN

3、ame15; Student;,模仿練習(xí),以下一維數(shù)組的定義是否正確?,int a ; #define SIZE 100 float bSIZE; int n=10; char cn; int 2a10;,數(shù)組元素的引用,數(shù)組就是一組變量的集合,每個數(shù)組元素相當于是一個變量 數(shù)組元素的表示: 數(shù)組名下標 如:int a5;所定義的數(shù)組就是五個變量的集合,分別是: a0, a1,a2, a3, a4 int aN; 下標的取值范圍:0N-1 ,其中N為數(shù)組的大小 下標是整型值,可以是整型常量、整型變量或整型表達式 如:ai a3+1 a2*i-1 注意:下標不能越界,否則可能覆蓋其他數(shù)據(jù),造成嚴

4、重后果,定義數(shù)組之后,與普通變量一樣,數(shù)組是沒有初始值的,各存儲單元的值都是不定的。 初始化:定義數(shù)組的同時賦初值 語法: 數(shù)據(jù)類型說明符 數(shù)組名長度=數(shù)值1,數(shù)值2,; 如 : int data10=0,1,2,3,4,5,6,7,8,9;,一維數(shù)組的初始化,1、定義并初始化一個float型數(shù)組,包含5個元素。 2、定義并初始化一個字符型數(shù)組,包含6個元素。 3、定義一個全0的整形數(shù)組,包含15個元素。,模仿練習(xí),初始化注意事項: (1) 允許初始化一部分元素,其他沒有賦初值的元素初值為0; int a10=0,1,2,3,4,5; 相當于 int a10=0,1,2,3,4,5,0,0,0

5、,0; (2)允許初始化時省略數(shù)組的長度,數(shù)組的長度為賦初值的個數(shù); int a=1,2,3,4,5; 相當于 int a5=1,2,3,4,5; (3)不能對整個數(shù)組初始化; int data5=1; 錯誤,應(yīng)為: int data5=1,1,1,1,1;,一維數(shù)組的初始化,數(shù)組的賦值只能對數(shù)組元素單獨操作,不能對數(shù)組整體操作。 賦值的兩種方式:int a5; 賦值運算符 如:a3=8; 輸入函數(shù) 如:scanf(“%d”, 錯誤,應(yīng)單獨為每個元素賦值 對數(shù)組的整體賦值只能在初始化時進行,一維數(shù)組的賦值,解決問題1 從鍵盤輸入5個整數(shù),保存到數(shù)組a中;再逆序輸出。,main() int a5

6、; scanf(“%d”, ,一維數(shù)組的遍歷,數(shù)組的遍歷一般用循環(huán)語句實現(xiàn) 注意下標的取值范圍,不能越界(編譯系統(tǒng)對下標的越界不做檢查),解法1:記下最大數(shù)其值 void main() int i, max,a10; printf(enter data:n); for(i=0;imax) max=ai; printf(“最大數(shù)是%dn, max); ,案例從鍵盤輸入10個整數(shù)存放在數(shù)組中,找出其中最大的一個數(shù),輸出該最大數(shù)。,解法2:記下最大數(shù)相應(yīng)的下標 void main() int i, max_id,a10; printf(enter data:n); for(i=0;iamax_id)

7、 max_id=i; printf(“最大數(shù)是%dn,amax_id); ,學(xué)生模仿練習(xí),1、把8、9、5、8、6、4、2、8和9、6、2、3、6、2、1、3這兩組數(shù)保存在兩個一維數(shù)組中,再把兩個數(shù)組對應(yīng) 元素的值相減后顯示出來。 2、從鍵盤輸入10個整數(shù)保存到數(shù)組中,求和、平均值并輸出。 3、從鍵盤輸入10個整數(shù)保存到數(shù)組中,求值最小的元素,將這個值最小的元素與數(shù)組的第一個元素交換。最后輸出整個數(shù)組。,小組討論并總結(jié),如何保證數(shù)組不越界? 數(shù)組的起始下標和最后一個元素的下標分別是多少?,結(jié)論1保證數(shù)組不越界,C語言編譯系統(tǒng)并不檢查數(shù)組是否越界。它只給已定義的數(shù)組元素分配內(nèi)存,超過的部分則依次往后排,至于那些位置的用途是什么,系統(tǒng)是不管的。讀出那些單元一般不會出問題,但如果往那里面寫入數(shù)據(jù)會導(dǎo)致不可預(yù)料的錯誤。 時刻注意數(shù)組的起始元素下標值和最后元素的下標值,結(jié)論2起始元素和最后元素的下標,數(shù)組下標為非負整數(shù) 數(shù)組起始的下標為0 最后元素的下標為:數(shù)組長度-1,學(xué)以致用,尋找你身邊的一個實際問題,用到一維數(shù)組。例如:編寫程序?qū)崿F(xiàn)功能:學(xué)號為1至10的同學(xué)的體重依次是:44,34,45,38,55,60,52,35,43,46,從中找出最輕者,及該同學(xué)的學(xué)號。,作業(yè)每人必做,將“學(xué)生成績管理系統(tǒng)”中的“學(xué)生”變量定義成數(shù)組,學(xué)生信息的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論