




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 chap4 理解數(shù)組的定義和使用,掌握數(shù)組的理解數(shù)組的定義和使用,掌握數(shù)組的 常用操作和字符串的處理。常用操作和字符串的處理。 數(shù)組的應(yīng)用,字符串的處理方法。數(shù)組的應(yīng)用,字符串的處理方法。 講授與上機相結(jié)合。講授與上機相結(jié)合。 chap4 數(shù)組的概念;數(shù)組的概念; 數(shù)組的應(yīng)用;數(shù)組的應(yīng)用; 數(shù)組的定義;數(shù)組的定義; 字符串字符串 本章授課內(nèi)容本章授課內(nèi)容 常見錯誤常見錯誤 chap4 4-1 數(shù)組數(shù)組的概念的概念 數(shù)組是一組有序數(shù)據(jù)的集合;數(shù)組中的每一個元素數(shù)組是一組有序數(shù)據(jù)的集合;數(shù)組中的每一個元素 都屬于同一個數(shù)據(jù)類型。用一個統(tǒng)一的數(shù)組名和下標(biāo)都屬于同一個數(shù)據(jù)類型。用一個統(tǒng)一的數(shù)組名和下
2、標(biāo) 來唯一的確定數(shù)組中的元素。來唯一的確定數(shù)組中的元素。 在科學(xué)計算和數(shù)據(jù)處理中,要用到成批數(shù)據(jù),這些在科學(xué)計算和數(shù)據(jù)處理中,要用到成批數(shù)據(jù),這些 數(shù)據(jù)類型相同,且彼此間存在一定的順序關(guān)系,為了數(shù)據(jù)類型相同,且彼此間存在一定的順序關(guān)系,為了 便于處理,引入了數(shù)組類型。便于處理,引入了數(shù)組類型。 一維數(shù)組一維數(shù)組 a0a1a2a3a4a5 數(shù)列數(shù)列 583296 chap4 例例4.1.1:4.1.1:某班有某班有8080名學(xué)生名學(xué)生, ,求該班成績的平均分求該班成績的平均分 #include void main( ) int j , sum , s ; float ave ; sum=0; f
3、or ( j=1; js; sum=sum+s; ave=sum/80.0; cout “ave=”ave; 假設(shè)現(xiàn)在要求保存每個學(xué)生的成績假設(shè)現(xiàn)在要求保存每個學(xué)生的成績, , 那就不能只使用一個變量那就不能只使用一個變量scorescore了了, , 而需要而需要4040個變量個變量, ,但這樣一來輸入、但這樣一來輸入、 輸出、計算都會變得繁瑣輸出、計算都會變得繁瑣. . 在這種在這種 情況下情況下, ,我們可以使用數(shù)組類型我們可以使用數(shù)組類型, ,說說 明一個含有明一個含有4040個元素的數(shù)組個元素的數(shù)組, ,每個每個 數(shù)組元素存放一個成績數(shù)組元素存放一個成績, ,成績的輸成績的輸 入、輸
4、出、計算都可通過循環(huán)來實入、輸出、計算都可通過循環(huán)來實 現(xiàn)現(xiàn) 一、數(shù)組的引入一、數(shù)組的引入 chap4 #include void main( ) int j , sum , s80 ; float ave ; sum=0; for ( j=0; jsj; sum=sum+sj; ave=sum/80.0; cout “ave=”n; int an; . _ 常量表達式中不能有變量常量表達式中不能有變量 常量表達式的值不能是實數(shù)常量表達式的值不能是實數(shù) _ 下標(biāo)從下標(biāo)從0開始開始, a0 , a1 a9,沒有,沒有a10; _ 常量表達式的值為元素的個數(shù)常量表達式的值為元素的個數(shù) 錯誤錯誤 c
5、hap4 二、一維數(shù)組的存儲結(jié)構(gòu)二、一維數(shù)組的存儲結(jié)構(gòu) a _ 一個數(shù)組的所有元素都是連續(xù)存儲的一個數(shù)組的所有元素都是連續(xù)存儲的 _ 數(shù)組元素為數(shù)組元素為: a0,a1,a2.a9 int a10; _ 所占空間為所占空間為: 類型長度類型長度*元素個數(shù)元素個數(shù) 84 : 66 80 95 1010 1014 1018 : 1046 a0 a1 a2 : a9 chap4三、數(shù)組元素的引用形式三、數(shù)組元素的引用形式 _ 數(shù)組元素的引用數(shù)組元素的引用: 數(shù)組名數(shù)組名下標(biāo)下標(biāo) a0 = a2+a4*2 240 int a10; a0=2; 下標(biāo)下標(biāo) 說明說明 (1) 下標(biāo)可以是整型常量或整型表達式
6、下標(biāo)可以是整型常量或整型表達式 如如: a1 , a2*3 (2) 數(shù)組定義為數(shù)組定義為 int a5 , 數(shù)組長度為數(shù)組長度為5 而下標(biāo)在而下標(biāo)在0 - 4之內(nèi)之內(nèi), 即即a0 - a4 注意注意: 如果出現(xiàn)如果出現(xiàn) a5 = 72 ; 編譯時不會指出錯誤編譯時不會指出錯誤, 系統(tǒng)會系統(tǒng)會 將將a4后下一個存儲單元后下一個存儲單元 賦值為賦值為72, 但這樣可能會破壞數(shù)但這樣可能會破壞數(shù) 組以外其他變量的值。組以外其他變量的值。 chap4 四、一維數(shù)組的初始化四、一維數(shù)組的初始化 1. 概念概念 : 在定義一維數(shù)組時對各元素指定初始在定義一維數(shù)組時對各元素指定初始 值稱為數(shù)組的初始化值稱為
7、數(shù)組的初始化 如如: int a5 = 1 , 3 , 5 , 7 , 9 ; 2. 說明說明 (1)初值用初值用 括起來括起來, 數(shù)據(jù)之間用逗號分開數(shù)據(jù)之間用逗號分開. (2)對數(shù)組的全體元素指定初值,可以不指明數(shù)組對數(shù)組的全體元素指定初值,可以不指明數(shù)組 的長度的長度, 系統(tǒng)會根據(jù)系統(tǒng)會根據(jù) 內(nèi)數(shù)據(jù)的個數(shù)確定數(shù)組內(nèi)數(shù)據(jù)的個數(shù)確定數(shù)組 的長度。的長度。 如如 : int a = 1 , 3 , 5 , 7 , 9 ; chap4 (3) 對數(shù)組中部分元素指定初值對數(shù)組中部分元素指定初值 ( 這時不能這時不能 省略數(shù)組長度省略數(shù)組長度 ) 如如 : int a5 = 1 , 3 , 5 ; (
8、4) 使數(shù)組中的全部元素初始值都為使數(shù)組中的全部元素初始值都為 0 如如: int a5 = 0 , 0 , 0 , 0 , 0 ; 更簡單的寫法:更簡單的寫法: int a5= 0 ; chap4例例4.2.1: 輸入輸入n個成績個成績,求平均分求平均分 #include void main( ) int s,n,i; float aver=0.0; cinn; for ( i=0; is; aver+=s; aver/=n; coutsi; aver+=si; aver/=n; for ( i=0 ; iaver) coutai; 輸入整個數(shù)組元素輸入整個數(shù)組元素: for (i=0;ia
9、i; 輸出方法:輸出方法: 輸出第輸出第i個數(shù)組元素:個數(shù)組元素: coutai; 輸出整個數(shù)組元素:輸出整個數(shù)組元素: for (i=0;i10;i+) coutai; chap4 _例例4.2.2:用一維數(shù)組求用一維數(shù)組求Fibonacci 數(shù)列數(shù)列 #include void main() int i; int f 20 = 1,1; for ( i=2; i20; i+ ) f i = f i-2 +f i-1; for ( i=0; i20; i+) if ( i%5 = 0) coutn; cout“t”f i ; 六、一維數(shù)組程序設(shè)計舉例六、一維數(shù)組程序設(shè)計舉例 1 1 0 0
10、0 0 : 0 f0 f1 f2 f3 f4 f5 : f19 i=2 f2=f0+f1 i=3 f3=f1+f2 i=4 f4=f2+f3 2 3 5 8 6765 chap4 例例4.2.3: 輸入一個數(shù)據(jù),在已知數(shù)組中查找是否有該數(shù)據(jù)輸入一個數(shù)據(jù),在已知數(shù)組中查找是否有該數(shù)據(jù) 5 8 0 1 9 2 6 3 7 4 9 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 #include void main() int i , x ; int a10= 5, 8, 0, 1, 9, 2, 6, 3, 7, 4 ; cinx; for ( i=0 ; i10 ; i+) if (
11、x=ai ) cout“find!”endl; break; if ( i=10 ) cout “no find!” endl; chap4 課堂練習(xí):課堂練習(xí): 有一個數(shù)列有一個數(shù)列,它的第一項為它的第一項為0,第二項為第二項為1,以后以后 每一項都是它的前兩項之和每一項都是它的前兩項之和, 試生成此數(shù)列試生成此數(shù)列 的前的前20項項,并按逆序顯示出來并按逆序顯示出來. chap4 練習(xí)答案:練習(xí)答案: #include Void main( ) int f20=0,1, j; for(j=2;j=0; j- -) / 逆序顯示逆序顯示 coutfj; coutaij; 輸入整個數(shù)組的元素:
12、輸入整個數(shù)組的元素: for ( i=0; i2; i+ ) for ( j=0; jaij; 輸出方法:輸出方法: 輸出第輸出第i行第行第j列列元素:元素: coutaij; 輸出整個數(shù)組的元素:輸出整個數(shù)組的元素: for ( i=0; i2; i+) for ( j=0; j3; j+) coutaij; chap4 六、二維數(shù)組程序設(shè)計舉例六、二維數(shù)組程序設(shè)計舉例 例例4.2.4: 有一個有一個3*4的矩陣的矩陣, 編編 程求出其中的最大值及其所在程求出其中的最大值及其所在 的行號和列號。的行號和列號。 chap4 5209 37126 10418 max row col 12 1 2
13、 #include void main( ) int i , j, row=0, col=0 , max ; int a34= 5, 2, 0, 9, 3, 7, 12, 6,10, 4, 1, 8 ; max=a00; for ( i=0 ; i3 ; i+ ) for ( j=0 ; jmax ) max=aij ; row=i ; col=j ; cout“max=” max; cout“max=a”row col; 輸出輸出: max=12 max=a12 chap4 例例4.2.5: 將一個矩陣進行轉(zhuǎn)置將一個矩陣進行轉(zhuǎn)置(即原來的行變?yōu)榱屑丛瓉淼男凶優(yōu)榱? 5209 37126 10
14、418 4 0 #include void main( ) int a34, b43 , i , j ; for ( i=0 ; i3 ; i+ ) for ( j=0 ; jaij ; for ( i=0 ; i3 ; i+ ) for (j=0 ; j4 ; j+) bji=aij; for ( i=0 ; i4 ; i+ ) for ( j=0 ; j3 ; j+ ) cout bij ; cout endl; 輸入數(shù)組輸入數(shù)組a 進行矩陣轉(zhuǎn)置進行矩陣轉(zhuǎn)置 輸出數(shù)組輸出數(shù)組b a0 2 b2 0 a21 b1 2 chap4 課堂練習(xí):課堂練習(xí): 1. 數(shù)組元素數(shù)組元素ai是該數(shù)組中的第
15、是該數(shù)組中的第個元素個元素. 2 . 元素類型為元素類型為int的數(shù)組的數(shù)組a10共占用共占用字節(jié)的存儲字節(jié)的存儲 空間,其中元素空間,其中元素a5的字節(jié)地址為的字節(jié)地址為. 3 .元素類型為元素類型為double的數(shù)組的數(shù)組a46共占用共占用字節(jié)的字節(jié)的 存儲空間,其中元素存儲空間,其中元素a25的字節(jié)地址為的字節(jié)地址為. 4.元素類型為元素類型為char的數(shù)組的數(shù)組a1030共占用共占用字節(jié)的字節(jié)的 存儲空間,其中元素存儲空間,其中元素a34的字節(jié)地址為的字節(jié)地址為. 答案答案: 1. i+1 2. 40 a+20 3. 192 a+136 4. 300 a+94 chap4 第一方面:利
16、用數(shù)組進行數(shù)值計算第一方面:利用數(shù)組進行數(shù)值計算: : 書中給出了三個例子,一個是計算個人所得稅,二是進行書中給出了三個例子,一個是計算個人所得稅,二是進行 矩陣求和,三是按月進行公司產(chǎn)值計算,都具有代表性矩陣求和,三是按月進行公司產(chǎn)值計算,都具有代表性 P103(2)P103(2) 4-3 數(shù)組的應(yīng)用數(shù)組的應(yīng)用 第二方面:利用數(shù)組進行統(tǒng)計第二方面:利用數(shù)組進行統(tǒng)計: : 書中給出了兩個例子,一是統(tǒng)計每個候選人的選票,書中給出了兩個例子,一是統(tǒng)計每個候選人的選票, 二是統(tǒng)計每個用電區(qū)間的居民戶數(shù)二是統(tǒng)計每個用電區(qū)間的居民戶數(shù):P105(1):P105(1) 第三方面:數(shù)據(jù)排序:第三方面:數(shù)據(jù)排
17、序:/數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 書中介紹了兩種方法:選擇排序和插入排序書中介紹了兩種方法:選擇排序和插入排序( (見后見后) ) 第四方面:查找數(shù)據(jù):第四方面:查找數(shù)據(jù):/數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 書中介紹了兩種方法:順序查找(不要求數(shù)組元素有序書中介紹了兩種方法:順序查找(不要求數(shù)組元素有序 排列)和二分查找(要求數(shù)組元素有序排列)排列)和二分查找(要求數(shù)組元素有序排列)P109(1)P109(1) chap4 基本算法舉例基本算法舉例 1.排序排序 (1)冒泡法排序冒泡法排序 例例4.3.1:輸入:輸入5個數(shù)個數(shù),進行由小到大排序進行由小到大排序: 9 8 5 4 2 算法:兩兩比較,大數(shù)向后移,找到最大
18、數(shù)放 在最后,再在剩余的的4個數(shù)中進行兩兩比較, 找到最大數(shù),以此類推.最后,小數(shù)排在開始, 相當(dāng)于浮起,故稱之為:冒泡法冒泡法 chap4 8 5 4 2 9 5 4 2 8 4 2 5 2 4 比較4次 第一輪 比較3次 第二輪 比較2次 第三輪 比較1次 第四輪 9 8 5 4 2 8 9 5 4 2 8 5 9 4 2 8 5 4 9 2 8 5 4 2 5 8 4 2 5 4 8 2 5 4 2 4 2 4 5 2 對 個數(shù),則要進行趟掃描,在第 趟掃描中要進行 次比較。 可以推知: chap4 /*排序排序*/ for (i=0; iN-1; i+) for ( j=0;jaj+1
19、) t =aj; aj=aj+1; aj+1=t; chap4 #include #define N 10 void main() int i, j, aN, t; for(i=0;iai; for(i=0;iN;i+)/輸出輸出 coutai ; /*排序排序*/ for (i=0;iN-1;i+) for(j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;iN;i+) /輸出輸出 coutai ; 源程序源程序: 例例4.3.1 chap4 (2)選擇法排序選擇法排序 特點:比較后不立即互換元素,而是記下其位置并在每 一輪比較完畢后和()互換 首先,比較的
20、元素不同,以降序為例,是當(dāng)前元素與上 次比較後的最大元素進行比較,因此,在進行比較之前, 要有一個初始化最大元素的過程 其次,確定完畢的元素的互換是在每一輪完成后進行的, 而不是在比較后進行的 再次,互換元素的不同,為(i)和(iMax) 舉例 原始數(shù)據(jù): 3,5,7,9,4 要求:降序 chap4 第一輪比較,初始化設(shè)最大元素下標(biāo)為第一輪比較,初始化設(shè)最大元素下標(biāo)為 k0 3579 k=0 3579 k=1 3579 k=2 3579 k=3 k=3 A(0) 與與 A(k)交換交換的結(jié)果的結(jié)果: 9573 chap4#include const int N=10; void main( )
21、 int aN , i , j , k , t; for ( i=0 ; iai; for ( i=0 ; iN-1 ; i+) k=i ; for ( j=i+1 ; jak ) k=j ; if ( k!=i ) t=ai ; ai=ak ; ak=t ; 源程序源程序:例例4.3.2 for ( i=0 ; iN ; i+) coutai; A0 A1 A2 A n-1 A0 A1 A2 A n-1 A0 A i-1 A i . . A n-1 A0 A1 . . A n-2 A n-1 chap4 2.在有序數(shù)組中插入一個數(shù)后使原數(shù)組仍在有序數(shù)組中插入一個數(shù)后使原數(shù)組仍 然有序。然有序
22、。例如:例如: 3 5 7 12 18(m=5),), 將將b=10插入插入 步驟:步驟: (1)要找到要找到b在數(shù)組中的位置在數(shù)組中的位置 (2)給給b讓位置讓位置 (3)將將b放到該位置上放到該位置上 (4)數(shù)組元素的個數(shù)數(shù)組元素的個數(shù) m 加加 1 chap4 3 5 7 12 18 (2) 3 5 7 12 12 18 (3) for(i=0;ib) break; for(j=m-1;j=i;j-) aj+1=aj;ai=b; 12 18 10 (1) 3 5 7 12 18 a0 a1 a2 a3 a4 a5 程序見例程序見例4.3.3 m=m+1; (4) chap4 3 5 7
23、10 12 18 (m=6), 將將b=10刪除刪除 步驟:步驟: (1) 要找到要找到b在數(shù)組中的位置在數(shù)組中的位置 (2) 后面的數(shù)組元素依次前移后面的數(shù)組元素依次前移,覆蓋該位置覆蓋該位置 上的數(shù)組元素即可實現(xiàn)刪除上的數(shù)組元素即可實現(xiàn)刪除 (3) 數(shù)組元素的個數(shù)數(shù)組元素的個數(shù) m 減減 1 3.在有序數(shù)組中刪除一個數(shù)在有序數(shù)組中刪除一個數(shù),例如例如: chap4 3 5 7 10 12 18 (1) 3 5 7 10 12 18 (2) 3 5 7 12 12 18 for(i=0;im;i+) if (ai=b) break; 10 12 18 for(j=i;jc0c1c2 ; fo
24、r ( i=0 ; i ci ; 2. 整個數(shù)組的輸入輸出,即按數(shù)組名輸入輸出整個數(shù)組的輸入輸出,即按數(shù)組名輸入輸出 (僅用于字符數(shù)組僅用于字符數(shù)組),因數(shù)組名本身代表數(shù)組的,因數(shù)組名本身代表數(shù)組的 首地址首地址 四、字符數(shù)組的輸入和輸出四、字符數(shù)組的輸入和輸出 chap4 注意注意 : (1) 輸入、輸出字符串時不包括輸入、輸出字符串時不包括“ ” (2) cin輸入時系統(tǒng)一直讀取字符,直到遇到輸入時系統(tǒng)一直讀取字符,直到遇到“空白空白 符符”為止。為止。 例如:輸入數(shù)據(jù)例如:輸入數(shù)據(jù) hello world C數(shù)組中內(nèi)容為數(shù)組中內(nèi)容為hello coutc; cinsetw(20)c; c
25、hap4 補充補充get( )函數(shù)函數(shù)(包含在包含在“iostream.h”) 如想輸入含空格的字符串,如如想輸入含空格的字符串,如“hello world”hello world” 只能使用只能使用get( )get( )函數(shù)函數(shù),使用格式如下:,使用格式如下: cin.getcin.get( (字符數(shù)組名,字符串長度,規(guī)定的結(jié)束符字符數(shù)組名,字符串長度,規(guī)定的結(jié)束符) ) 其中,規(guī)定的結(jié)束符省略時,默認為回車鍵。其中,規(guī)定的結(jié)束符省略時,默認為回車鍵。 如:如: char strchar str20;20; cin.getcin.get(str,20)(str,20) chap4五、字符串
26、處理函數(shù)五、字符串處理函數(shù) 字符串函數(shù)的原型保存在字符串函數(shù)的原型保存在中中 v 字符串連接函數(shù)字符串連接函數(shù): strcat(s1,s2); char *strcat ( char *s1, const char *s2 ); 連接連接s1和和s2兩個字符串賦給兩個字符串賦給s1,返回,返回s1的值的值 v 字符串拷貝函數(shù)字符串拷貝函數(shù): strcpy(s1,s2); char *strcpy ( char *s1, const char *s2 ); 將將s2中的字符串賦給中的字符串賦給s1,返回,返回s1的值的值 v 字符串比較函數(shù)字符串比較函數(shù): strcmp(s1,s2) v 求字符
27、串長度函數(shù)求字符串長度函數(shù):strlen(s) 函數(shù)值為整數(shù)函數(shù)值為整數(shù)(返回字符個數(shù)返回字符個數(shù)) (參數(shù)為字符數(shù)組名)(參數(shù)為字符數(shù)組名) chap4 六、字符數(shù)組程序應(yīng)用六、字符數(shù)組程序應(yīng)用 v 字符串的長度字符串的長度 v 逆序逆序 v 字符串函數(shù)字符串函數(shù) chap4 _例例4.4.1:求字符串長度:求字符串長度 掃描數(shù)組掃描數(shù)組,只要不是只要不是0,計數(shù)器就加計數(shù)器就加1 源程序源程序: #include void main() int i; char s50; cins; for (i=0;i50 i+) ; cout“Lengh of “s“is”i ; ac d 0b i f
28、or (i=0; i50) ; i i=0 chap4 _字符串函數(shù)字符串函數(shù) /*例例4.4.2: STRCAT*/ #include void main() int i , j; char s140, s220; cins1s2; for( i=0; i40 i+) ; for( j=0; j20 j+) s1i+=s2 j; s1i=0; /*s1i=s2j;*/ couts1; s1 s2 acd 0b eg0f acd ebf g 0 s1 / i=strlen(s1); chap4 /*例例4.4.3: STRCPY*/ #include void main() char p180
29、,p280; int i; cinp2; for (i=0;p2i!=0;i+) p1i=p2i; p1i=0; cout“p1=“p1“np2=“p2“n”; chap4 例例 4.4.4(綜合舉例)(綜合舉例) 某班有某班有50個個 學(xué)生,期終考試學(xué)生,期終考試8門課程門課程。求每個學(xué)。求每個學(xué) 生總成績、平均成績,并按總成績高生總成績、平均成績,并按總成績高 分到低分輸出。分到低分輸出。 ( 上機作業(yè)上機作業(yè) ) skip chap4 char name5112; /*采用外部數(shù)組實現(xiàn)數(shù)據(jù)傳遞采用外部數(shù)組實現(xiàn)數(shù)據(jù)傳遞*/ float cj519; float tacj513; #incl
30、ude void input( ); /*函數(shù)聲明函數(shù)聲明*/ void count( ); void sort( ); void output( ); void main( ) input( ); /*調(diào)用輸入函數(shù)調(diào)用輸入函數(shù)*/ count( ); /*調(diào)用計算函數(shù)調(diào)用計算函數(shù)*/ sort( ); /*調(diào)用排序函數(shù)調(diào)用排序函數(shù)*/ output( ); /*調(diào)用輸出函數(shù)調(diào)用輸出函數(shù)*/ chap4 void input( ) /*輸入函數(shù)輸入函數(shù)*/ int i, j; for(i=1; i=50; i+) cout“請輸入第請輸入第”inamei; for(j=1; jcjij; ch
31、ap4 void count( ) /*計算函數(shù)計算函數(shù)*/ int i, j; for(i=1; i=50; i+) tacji1=0; for(j=1; j=8; j+) tacji1+= cjij; tacji2= tacji1/ 8; chap4 void sort( ) /*排序函數(shù)排序函數(shù)*/ int i , flag; char ts12; float tc; do flag=0; for(i=1; itacji1) strcpy(ts, namei);); strcpy(namei,namei+1);); strcpy(namei+1,ts);); /交換姓名交換姓名 chap
32、4 for(j=1; j=8; j+)/*交換交換8門課程成績門課程成績*/ t=cj i j; cj i j=cj i+1 j; cj i+1 j=t; t= tacj i 1; tacj i 1= tacj i+1 1; tacj i+1 1 =t; /*交換總成績交換總成績*/ t= tacj i 2; tacj i 2 = tacj i+1 2; tacj i+1 2 = t; /*交換平均成績交換平均成績*/ flag=1; while(flag=1);); chap4 void output( ) /*輸出函數(shù)輸出函數(shù)*/ int i; cout50個學(xué)生成績處理結(jié)果如下:個學(xué)生成
33、績處理結(jié)果如下: n; cout 姓名姓名 課程課程1 課程課程2 課程課程3 課程課程4 課程課程5 課程課程6 課程課程7 課程課程8 總成績總成績 平均成績平均成績 名次名次n; for(i=1; i=50; i+) coutnamei; for(j=1; j=8; j+) coutcjij; couttacji1 tacji2 i; coutn; chap4 常見錯誤常見錯誤 1、數(shù)組下標(biāo)越界。、數(shù)組下標(biāo)越界。 如:如: int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10; for (i=1; i=10; i+) cout ai; C+規(guī)定定義時用規(guī)定定義時用a
34、10,表示數(shù)組有,表示數(shù)組有10 個元素,個元素, 而不是可以用的最大下標(biāo)值為而不是可以用的最大下標(biāo)值為10。數(shù)組只包括。數(shù)組只包括a0到到 a910 個元素,因此用個元素,因此用a10超出范圍。超出范圍。 for (i=0; i=9; i+) cout ai; chap4 2、數(shù)組整體賦值。、數(shù)組整體賦值。 int a10; int b10=1, 2, 3, 4, 5, 6; a=b; +不允許對數(shù)組進行整體操作,如果把數(shù)不允許對數(shù)組進行整體操作,如果把數(shù) 組組 a 賦值給數(shù)組賦值給數(shù)組 b ,需要用循環(huán)語句來實現(xiàn)。,需要用循環(huán)語句來實現(xiàn)。 for (i=0; i10; i+) ai=bi;
35、 chap4 3、誤以為數(shù)組名代表數(shù)組中全部元素。、誤以為數(shù)組名代表數(shù)組中全部元素。 main( ) int a4=1, 2, 3, 4; cout a; 企圖用數(shù)組名代表全部元素。企圖用數(shù)組名代表全部元素。 +中,數(shù)組名代表數(shù)組首地址,不能通過中,數(shù)組名代表數(shù)組首地址,不能通過 數(shù)組名輸出數(shù)組名輸出4個整數(shù)。個整數(shù)。 cout a0 a1 a2 a3); 或:或: for (i=0; i=3; i+) cout ai; chap4 4、引用數(shù)組元素時使用圓括號。、引用數(shù)組元素時使用圓括號。 cout a(5); 5、向一個字符數(shù)組賦字符串。、向一個字符數(shù)組賦字符串。 char str20; str=I am a boy.; 這種錯誤和第二種錯誤為一種錯誤,即不支這種錯誤和第二種錯誤為一種錯誤,即不支 持對數(shù)組的整體操作。持對數(shù)組的整體操作。 strcpy(str, I am a bpy.); chap4 6、構(gòu)造字符串時忘記在末尾應(yīng)加、構(gòu)造字符串時忘記在末尾應(yīng)加0。 i=0; while (ch=getchar( )!=n) stri+=ch; cout str; 由于構(gòu)造的字符串沒有加結(jié)束標(biāo)志,當(dāng)用由于構(gòu)造的字符串沒有加結(jié)束標(biāo)志,當(dāng)用cout函函 數(shù)輸出數(shù)輸出str時,從時,從str的起始地址開始一個個的輸出,的起始地址開始一個個的輸出, 輸出完讀入的字符后,沒有遇到輸
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國LY250摩托車發(fā)動機數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國EVA游泳板數(shù)據(jù)監(jiān)測研究報告
- 鐵路水性涂料企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 女皮鞋企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 臨床試驗樣品管理與檢測行業(yè)跨境出海戰(zhàn)略研究報告
- 棕制床墊企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 功能鞋企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 2025年中國靠墊被市場調(diào)查研究報告
- 兒童鞋子企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 2025年中國防噴器組市場調(diào)查研究報告
- GB 19522-2024車輛駕駛?cè)藛T血液、呼氣酒精含量閾值與檢驗
- 2024年成都新都投資集團有限公司招聘筆試沖刺題(帶答案解析)
- 危險預(yù)知訓(xùn)練表(KYT)
- 2024年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 《書籍裝幀設(shè)計》 課件 項目1 走進書籍裝幀設(shè)計
- ASTM標(biāo)準全部目錄(中文版)
- 《汽車電氣設(shè)備構(gòu)造與維修》 第4版 課件 第3、4章 電源系統(tǒng)、發(fā)動機電器
- 遼海版小學(xué)美術(shù)六年級下冊全冊教案
- 2023年南京市鼓樓區(qū)建寧路街道安監(jiān)辦招聘專職安全員考試真題及答案
- 鄉(xiāng)鎮(zhèn)精神衛(wèi)生工作總結(jié)
- 井工煤礦中長期防治水規(guī)劃編制細則
評論
0/150
提交評論