




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一一. 概念概念C提供的數(shù)據(jù)類型有提供的數(shù)據(jù)類型有: 標準型和構(gòu)造型。標準型和構(gòu)造型。在遇到的大量編程問題中僅用標準型在遇到的大量編程問題中僅用標準型是解決不了的。如是解決不了的。如: 排序排序, 查詢,統(tǒng)計,查詢,統(tǒng)計,線性方程組求解,矩陣運算等需要用線性方程組求解,矩陣運算等需要用構(gòu)造類型,數(shù)組是其中之一。構(gòu)造類型,數(shù)組是其中之一。數(shù)組數(shù)組-具有相同類型數(shù)據(jù)的集合。數(shù)具有相同類型數(shù)據(jù)的集合。數(shù)組中每一個數(shù)據(jù)稱為元素,每一個元組中每一個數(shù)據(jù)稱為元素,每一個元素均用統(tǒng)一的數(shù)組名和相應(yīng)的下標確素均用統(tǒng)一的數(shù)組名和相應(yīng)的下標確定。定。數(shù)組定義數(shù)組定義格式:格式: 一維一維 類型說明符類型說明符 數(shù)
2、組名數(shù)組名常量常量二維二維 類型說明符類型說明符 數(shù)組名數(shù)組名常量常量 常量常量例:例: int num10; float score34 ;在程序中定義了一維數(shù)組和二維數(shù)組;在程序中定義了一維數(shù)組和二維數(shù)組;編譯時在內(nèi)存開辟連續(xù)一批單元,存編譯時在內(nèi)存開辟連續(xù)一批單元,存放數(shù)組各元素的值。放數(shù)組各元素的值。 2 bytesnum0num1num2 num9. 4 bytes.score00score01score02 score23功能功能:定義數(shù)組名定義數(shù)組名, 類型和大小。類型和大小。num 整型整型 10個元素個元素score 實型實型 12個元素個元素數(shù)組元素賦初值數(shù)組元素賦初值 指
3、在定義的同時可給數(shù)組各元素指在定義的同時可給數(shù)組各元素或部分元素賦初值,即初始化。在編或部分元素賦初值,即初始化。在編譯時除分配一定的單元,同時將初值譯時除分配一定的單元,同時將初值賦給相應(yīng)單元賦給相應(yīng)單元(元素元素), 否則是隨機值。否則是隨機值。 如果給全部元素賦值,則在數(shù)組如果給全部元素賦值,則在數(shù)組定義時,可以不給出數(shù)組長度,系統(tǒng)定義時,可以不給出數(shù)組長度,系統(tǒng)將根據(jù)初值的個數(shù)自動確定數(shù)組的長將根據(jù)初值的個數(shù)自動確定數(shù)組的長度。度。num0num1.019static-表示靜態(tài)存儲; 若定義成:static int num10; 所有元素均賦 0; 部分元素賦初值:static int
4、 num10=0,1,2,3,4; 其它元素均賦 0;num9一維數(shù)組:一維數(shù)組:static int num10 = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;也可 static float score34=1,1,1,1,2,2,2,2,3,3,3,3;也可 static float score 4=1,1,1,1,2,2,2,2,3,3,3,3;而 static float score34; 則所有元素均賦 0;部分元素賦初值:static float score34=1,2,3;表示score00; score10; score20分別賦1,2,3,其它元素均為 0。
5、static float score34=1,7,8;表示score 00=1;score10=7,score11=8,其它元素均為 0; 二維數(shù)組二維數(shù)組static float score34=1,1,1,1,2,2,2,2,3,3,3,3,;對數(shù)組元素的操作對數(shù)組元素的操作 在在C中,只能對已定義的數(shù)組元中,只能對已定義的數(shù)組元素逐個的操作素逐個的操作(賦值、輸出等賦值、輸出等),不可,不可對整個數(shù)組一次進行賦值對整個數(shù)組一次進行賦值 , 輸出等。輸出等。凡是變量可出現(xiàn)的地方,數(shù)組元素凡是變量可出現(xiàn)的地方,數(shù)組元素也可出現(xiàn)。也可出現(xiàn)。 數(shù)組元素引用格式:數(shù)組元素引用格式:一維一維 數(shù)組名
6、數(shù)組名 二維二維 數(shù)組名數(shù)組名 一維數(shù)組各元素一維數(shù)組各元素: 賦值賦值, 輸出輸出main( ) int num10, i; for (i=0; i10; i+) numi=i+1; for(i=0; i10; i+) numi *= 10; for (i=0; i10; i+) printf(num%d = %d n, i, numi ); main( ) int num10, i; for (i=0; i10; i+) scanf(%d, &numi); for (i=0; i10; i+) printf(num%d = %d n, i, numi);二維數(shù)組各元素二維數(shù)組各元素
7、: 賦值賦值,輸出輸出main( ) int score34; int i, j; for (i=0; i3; i+) for (j=0; j4; j+) scanf(%d, &scoreij); for (i=0; i3; i+) for (j=0; j4; j+) printf (score%d%d=%d, i, j, scoreij); printf(n); 數(shù)組在編程中應(yīng)用數(shù)組在編程中應(yīng)用例:某班例:某班3人人, 2門課門課, 試編程試編程:1. 鍵盤輸入每個人學(xué)號和鍵盤輸入每個人學(xué)號和2門課成績門課成績;2. 求出每人平均分和每門課的平均求出每人平均分和每門課的平均分。分。
8、變量設(shè)置變量設(shè)置: num3 存放每個人的學(xué)號存放每個人的學(xué)號score32 存放存放30人人,每人每人9門課成績門課成績aver3 存放每人平均成績存放每人平均成績aver12 存放每門課平均成績存放每門課平均成績 main () int i, j; int score32, num3, sum; float aver3, aver12; for (i=0; i3; i+) scanf (%d, &numi); for (j=0; j2; j+) scanf (%d, &scoreij); /* 輸入每人學(xué)號和2門課成績 */ for (i=0; i3; i+) sum=0;
9、 for (j=0; j2; j+) sum+=scoreij; averi =sum/2; /* 求出每人平均分 */ for (i=0; i3; i+) printf (Student.%d t %f n, i+1, averi);/* 輸出每門課平均分 */ for (i=0; i2; i+) sum=0; for (j=0; j3; j+ ) sum+=scoreji; aver1i =sum/3; /* 求每門課平均分 */ for (i=0; i2; i+) printf (Course.%d t %f n, i+1, aver1i);/* 輸出每門課平均分 */例:已知三行三列數(shù)
10、組各元素值例:已知三行三列數(shù)組各元素值, 試分別求各行元素試分別求各行元素,各列元素和每個元素之和。各列元素和每個元素之和。main() int i, j; static int a44=3,5,6,0, 2,1,4,0, 3,5,4,0, 0,0,0,0; for (i=0; i3; i+) for (j=0; j3; j+) ai3+=aij; a3j+=aij; a33+=aij; for (i=0; i4; i+) for (j=0; j4; j+) printf (%5d, aij); printf(n); 第第0列各元素之和列各元素之和所有元素之和所有元素之和第第 0 行各行各 元
11、素之和元素之和3 5 6 xx2 1 4 xx3 5 4 xxxx xx xx xx例:矩陣相乘例:矩陣相乘: C=A*B條件條件: A陣的列數(shù)陣的列數(shù) = B陣的行數(shù)陣的行數(shù) 乘積矩陣的行數(shù)為乘積矩陣的行數(shù)為A陣行陣行, 列為列為B陣列陣列main( ) static int a33=1,2,3 ,4,5,6, 7,8,9; static int b32=1,2, 3,4, 5,6; static int c32; int i, j, k; for (i=0; i3; i+) for (j=0; j2; j+) for (k=0; k3; k+) cij+=aik * bkj; for (i
12、=0; i3; i+) for (j=0; j2; j+) printf (%5d, cij); printf(n); 1 3 5 7 9 2 4 6 8 00 3 5 7 9 2 4 6 8 10 1 5 7 9 3 4 6 8 20 1 2 7 9 5 4 6 8 30 1 2 3 9 7 5 6 8 40 1 2 3 4 9 7 6 8 50 1 2 3 4 5 9 7 8 60 1 2 3 4 5 6 9 8 70 1 2 3 4 5 6 7 9 80 1 2 3 4 5 6 7 8 91 3 5 7 9 2 4 6 8 01 3 5 7 2 4 6 8 0 91 3 5 2 4 6
13、7 0 8 91 3 2 4 5 6 0 7 8 91 2 3 4 5 0 6 7 8 91 2 3 4 0 5 6 7 8 91 2 3 0 4 5 6 7 8 91 2 0 3 4 5 6 7 8 91 0 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 9字符數(shù)組字符數(shù)組 C中無字符串變量中無字符串變量, 字符串是用字符字符串是用字符數(shù)組處理數(shù)組處理. 定義定義:一維一維 char cn5 (常用來處理一個字符串常用來處理一個字符串)二維二維 char name308 (常用來處理多個字符串常用來處理多個字符串)賦初值賦初值: static char cn5=C,h,i
14、,n,a; static char cn6=C,h,i,n,a,0; static char cn6=“China”; static char cn6=“China”; static char cn =“China”;系統(tǒng)定義系統(tǒng)定義, 自動在串尾加自動在串尾加0。若提供的初值小于數(shù)組長度,則只將這些字若提供的初值小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面的元素,其余元素自動空符賦給數(shù)組中前面的元素,其余元素自動空字符字符0若對全體元素賦初值,可省長度說明若對全體元素賦初值,可省長度說明均等價cn0cn1cn2cn3cn4cn5China0字符串結(jié)束標志輸出時: printf(“%s n”,
15、cn); cn 是字符數(shù)組名,當遇到0輸出結(jié)束 printf(“%c n”, cn0); cn0 是字符數(shù)組元素。在內(nèi)存存放:例:實現(xiàn)串拷貝main( ) static char s2 =China; char s120; int i; for(i=0; s2i!=0; i+) s1i=s2i; s1i=0; printf (%sn, s1);例:實現(xiàn)串連接#include main( ) char s130, s220; int i, j; gets(s1); gets(s2); i=0; while ( s1i ) i+; for (j=0; s2j; j+, i+) s1i=s2j; s
16、1i=0; printf(%s n, s1);例:字符串比較#include main( ) char s120, s220; int i; gets(s1); gets(s2); for (i=0; s1i=s2i; i+) if (s1i=0) break; printf(%d n, s1i-s2i);例:輸入一串字符, 統(tǒng)計該串里單詞的個數(shù) (單詞間用空格分開), 串結(jié)束用回車.Num:統(tǒng)計串的個數(shù):統(tǒng)計串的個數(shù),Word:當遇到一個或多個空格:當遇到一個或多個空格, word=0; 當遇到第一個非空格當遇到第一個非空格, 若原若原word是是0, 表表示新詞開始示新詞開始, num增增
17、1, 同時同時word=1;鍵入字符串stri != 0stri= ?Yword=0Yword=0?num增1, word=1 N輸出numN二維字符數(shù)組運用二維字符數(shù)組運用, 常用來處理多個常用來處理多個字符串字符串.例例: char name308 該二維數(shù)組該二維數(shù)組用來存放某班用來存放某班30個學(xué)生的名字個學(xué)生的名字.30個人個人每人的名字每人的名字,其長度其長度 =8name308例例: 已知三個字符串已知三個字符串, 挑出并輸出最大串。挑出并輸出最大串。C C T V 0 .B T V 0 .N T V 0 .c0是第一個串在內(nèi)存存放首地址c1是第二個串在內(nèi)存存放首地址c2是第三個串在內(nèi)存存放首地址str是字符串在內(nèi)存存放首地址# include main( ) char str20, c320; int i; for (i=0; i 0) strcpy(str, c0); else strcpy(str, c1); if (strcmp (c2, str) 0) strcpy(str, c2); printf (max=%s n, str);例:鍵入一個數(shù)字串例:
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧師范大學(xué)海華學(xué)院《書籍設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 南開大學(xué)濱海學(xué)院《英語視聽說(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中國民用航空飛行學(xué)院《數(shù)據(jù)分析與挖掘》2023-2024學(xué)年第二學(xué)期期末試卷
- 廈門安防科技職業(yè)學(xué)院《藥理方法學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 西昌學(xué)院《公路工程施工技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北水利水電職業(yè)技術(shù)學(xué)院《裝飾材料與施工工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 廠房電氣工程安裝合同
- 庫房和場地租賃合同
- 文藝活動場地租賃合同
- 交通工程咨詢服務(wù)合同
- 人教版(新教材)高中物理選擇性必修3第三章 熱力學(xué)定律章末檢測試卷(三)
- 城市軌道交通安全生產(chǎn)
- 2024-2025年度安徽省職業(yè)院校技能大賽(中職組)競賽規(guī)程-農(nóng)機檢修(教師賽)
- 2024年長期照護師職業(yè)技能競賽理論考試題庫(含答案)
- 2022年中國聯(lián)通智家工程師技能大賽題庫-上(單選題部分)
- 《職業(yè)衛(wèi)生》專題培訓(xùn)
- 2024年江蘇省南通市中考地理試題(含答案)
- 2024年度中藥的性能《四氣五味》課件
- 混凝土安全晨會(班前會)
- 籃球課件英文教學(xué)課件
- 2025年慢性阻塞性肺疾病全球創(chuàng)議GOLD指南修訂解讀課件
評論
0/150
提交評論