維數(shù)組元素輸入輸出.ppt
ssmsV1.0_輸入輸出功能,程序演示程序分析數(shù)組的概念一維數(shù)組的定義和引用一維數(shù)組的初始化和賦值數(shù)組元素的遍歷課堂練習課程小結,專業(yè)英語詞匯,回顧與提問,回顧上次課主要內容檢查學生課后實訓與作業(yè)完成情況(包括小組評價)講解ssmsv1.0案例主要功能,演示程序,演示學生成績管理案例中輸入、輸出成績函數(shù)。提問:用什么樣的方法可以實現(xiàn)象輸入輸出學生成績那樣,讓一批同類型的相關數(shù)據(jù)共用一個標識符,而不必為每個數(shù)據(jù)選定一個名稱?引出數(shù)組概念。,分析與講解,輸入學生成績到數(shù)組中(用函數(shù)實現(xiàn))輸出學生成績(用函數(shù)實現(xiàn)),數(shù)組的概念,數(shù)組是一組變量,滿足下列條件:(1)具有相同的名字(2)具有相同的數(shù)據(jù)類型(3)在存儲器中連續(xù)存放每個變量名字相同下標不同,稱為“數(shù)組元素”“數(shù)組名”代表整個數(shù)組,其值是這組變量在內存中所占連續(xù)存儲空間的首地址。數(shù)組要先定義后使用。數(shù)組名不能與相同作用域的其他變量名重名,一維數(shù)組的定義、引用,一維數(shù)組的定義,定義數(shù)組的語法:inta10;數(shù)據(jù)類型說明符數(shù)組名數(shù)組長度;,說明數(shù)組元素的數(shù)據(jù)類型,可以是任何一種基本數(shù)據(jù)類型和構造的數(shù)據(jù)類型,用戶自定義的標識符,是一個常量表達式,表示數(shù)組單元的個數(shù),注意:數(shù)組的空間分配是靜態(tài)分配。數(shù)組長度只能是常量,長度不能在程序運行過程中發(fā)生變化。,一維數(shù)組的定義舉例,inta;#defineSIZE100floatbSIZE;intn=10;charcn;int2a10;,數(shù)組元素的引用,數(shù)組就是一組變量的集合,每個數(shù)組元素相當于是一個變量數(shù)組元素的表示:數(shù)組名下標如:inta5;所定義的數(shù)組就是五個變量的集合,分別是:a0,a1,a2,a3,a4intaN;下標的取值范圍:0N-1,其中N為數(shù)組的大小下標是整型值,可以是整型常量、整型變量或整型表達式如:aia3+1a2*i-1注意:下標不能越界,否則可能覆蓋其他數(shù)據(jù),造成嚴重后果,一維數(shù)組的初始化和賦值,一維數(shù)組的初始化,定義數(shù)組之后,與普通變量一樣,數(shù)組是沒有初始值的,各存儲單元的值都是不定的初始化:定義數(shù)組的同時賦初值語法:數(shù)據(jù)類型說明符數(shù)組名長度=數(shù)值1,數(shù)值2,;如:intdata5=1,2,3,4,5;,一維數(shù)組的初始化,初始化注意事項:(1)允許初始化一部分元素,其他沒有賦初值的元素初值為0;inta5=1,2;相當于inta5=1,2,0,0,0;(2)允許初始化時省略數(shù)組的長度,數(shù)組的長度為賦初值的個數(shù);inta=1,2,3,4,5;相當于inta5=1,2,3,4,5;(3)不能對整個數(shù)組初始化;intdata5=1;錯誤,應為:intdata5=1,1,1,1,1;,一維數(shù)組的賦值,數(shù)組的賦值只能對數(shù)組元素單獨操作,不能對數(shù)組整體操作。賦值的兩種方式:inta5;賦值運算符如:a3=8;輸入函數(shù)如:scanf(“%d”,錯誤,應單獨為每個元素賦值對數(shù)組的整體賦值只能在初始化時進行,一維數(shù)組的遍歷,從鍵盤輸入5個整數(shù),保存到數(shù)組a中;再逆序輸出。,main()inta0,a1,a2,a3,a4;scanf(“%d”,main()inta5;scanf(“%d”,從鍵盤輸入5個整數(shù),保存到數(shù)組a中;再逆序輸出。,main()inta5;scanf(“%d”,一維數(shù)組的遍歷,數(shù)組的遍歷一般用循環(huán)語句實現(xiàn)注意下標的取值范圍,不能越界(編譯系統(tǒng)對下標的越界不做檢查),解法1:記下最大數(shù)其值main()inti,max,a10;printf("enterdata:n");for(i=0;imax)max=ai;printf(“最大數(shù)是%dn",max);,例題:從鍵盤輸入10個整數(shù)存放在數(shù)組中,找出其中最大的一個數(shù),輸出該最大數(shù)。,解法2:記下最大數(shù)相應的下標main()inti,max_id,a10;printf("enterdata:n");for(i=0;iamax_id)max_id=i;printf(“最大數(shù)是%dn",amax_id);,課堂練習,1、完成學生成績輸入的功能。在主菜單中增加“輸入成績”一項;在程序中增加ssmsV1.0_04模塊的函數(shù),函數(shù)原型為:intinputScore(intscore,intlength)在程序開頭處聲明該函數(shù),并在main函數(shù)的switch語句中進行調用,調試程序。2、完成學生成績輸出的功能。在主菜單中增加“輸出成績”一項;在程序中增加ssmsV1.0_05模塊的函數(shù),函數(shù)原型為:intoutputScore(intscore,intlength)在程序開頭處聲明該函數(shù),并在main函數(shù)的switch語句中進行調用,調試程序。,課堂練習,3、新建一個項目,建立一個能存放N(N是一個常量)個數(shù)據(jù)的數(shù)組,數(shù)組元素值為此數(shù)組元素下標的10倍,然后按正序和逆序輸出定義輸入函數(shù):intinput(inta,intlen);定義正序輸出函數(shù):intoutz(inta,intlen);定義逆序輸出函數(shù):intoutn(inta,intlen);編寫main函數(shù)調用上述函數(shù),實現(xiàn)輸入和輸出,更進一步,1)將課堂實訓的第3題做一下修改:要求用數(shù)組實現(xiàn)輸出1100中的所有奇數(shù),怎么做?,更進一步,2)再考慮上面(1)步,要求實現(xiàn)求數(shù)組元素中所有下標為偶數(shù)的元素的和怎么做?,更進一步,3)想一想(或討論),對數(shù)組元素初始化時有什么要求,對數(shù)組元素賦值采用初始化和從鍵盤輸入兩種方式各有什么利弊?對數(shù)組元素的下標有什么要求?,更進一步,4)總結與評價,本次課小結,數(shù)組的定義、初始化、引用、輸入、輸出概念、操作必須掌握數(shù)組下標從開始數(shù)組名代表數(shù)組首地址,是一個常量語言不允許動態(tài)定義數(shù)組,即定義數(shù)組時數(shù)組長度表達式不能含有變量數(shù)組元素與普通變量具有相同屬性,可以進行算術運算和比較大小等操作,作業(yè),1、從鍵盤輸入10個整數(shù)保存到數(shù)組中,求和、平均值并輸出。2、從鍵盤輸入10個整數(shù)保存到數(shù)組中,求值最小的元素,將這個值最小的元素與數(shù)組的第一個元素交換。最后輸出整個數(shù)組。3、從鍵盤輸入10個浮點數(shù)保存到數(shù)組中,將這10個數(shù)逆序存放后輸出。,注意用watch調試工具跟蹤下標變量的值的變化情況。,