版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2C數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型數(shù)值類型數(shù)值類型整型整型有符號整型有符號整型 有符號長整型有符號長整型有符號短整型有符號短整型無符號整型無符號整型無符號長整型無符號長整型無符號短整型無符號短整型實(shí)型實(shí)型單精度型單精度型雙精度型雙精度型字符類型字符類型枚舉類型枚舉類型構(gòu)造類型構(gòu)造類型(組合類型組合類型)數(shù)組類型數(shù)組類型結(jié)構(gòu)類型結(jié)構(gòu)類型共用類型共用類型文件類型文件類型指針類型指針類型空類型空類型(void)C語言的數(shù)據(jù)類型3數(shù)組:數(shù)組:指一組指一組同類型同類型數(shù)據(jù)組成的序列,用一個統(tǒng)一數(shù)據(jù)組成的序列,用一個統(tǒng)一的數(shù)組名標(biāo)識這一組數(shù)據(jù),用下標(biāo)來指示數(shù)組中元的數(shù)組名標(biāo)識這一組數(shù)據(jù),用下標(biāo)來指示數(shù)組
2、中元素的序號。素的序號。例如:例如:No1, No2, No3, No4, No5中:中: No:數(shù)組名數(shù)組名 i :下標(biāo)下標(biāo) Noi ;數(shù)組元素數(shù)組元素說明:說明: 同一數(shù)組中所有元素必須屬于同一數(shù)據(jù)類型。同一數(shù)組中所有元素必須屬于同一數(shù)據(jù)類型。 數(shù)組在內(nèi)存空間是連續(xù)存放的。數(shù)組在內(nèi)存空間是連續(xù)存放的。4OUTLINE56一維數(shù)組一維數(shù)組7 一維數(shù)組的定義一維數(shù)組的定義n 定義的意義定義的意義和變量定義類似,要和變量定義類似,要先定義后使用先定義后使用,編譯系統(tǒng)可,編譯系統(tǒng)可根據(jù)定義信息為數(shù)組分配相應(yīng)的空間。根據(jù)定義信息為數(shù)組分配相應(yīng)的空間。8一維數(shù)組的定義一維數(shù)組的定義(聲明)聲明)注意注
3、意: 這里的這里的元素個數(shù)元素個數(shù)不能是變量不能是變量。只能是。只能是一個數(shù)字常量一個數(shù)字常量或符號常量或符號常量n 定義格式:定義格式: 數(shù)組名數(shù)組名元素個數(shù)元素個數(shù);9一維數(shù)組的定義一維數(shù)組的定義例:例: int number5 定義了一個大小為定義了一個大小為5的整型數(shù)組的整型數(shù)組C語言中,數(shù)組元素的序號(下標(biāo))從語言中,數(shù)組元素的序號(下標(biāo))從0開始。開始。number0number1number2number3number4n對數(shù)組的引用超過了所聲明的范圍,會導(dǎo)致不可預(yù)知的結(jié)果對數(shù)組的引用超過了所聲明的范圍,會導(dǎo)致不可預(yù)知的結(jié)果.10n 數(shù)組元素的作用相當(dāng)于簡單變量數(shù)組元素的作用相當(dāng)
4、于簡單變量n 數(shù)組名代表的是數(shù)組在內(nèi)存中的首地址數(shù)組名代表的是數(shù)組在內(nèi)存中的首地址n 同一個數(shù)組中的元素在內(nèi)存中是按順同一個數(shù)組中的元素在內(nèi)存中是按順 序連續(xù)存放的序連續(xù)存放的11Example 7.1A program using a single-subscripted variable to evaluate the following expressions:The values of x1, x2,.are read from the terminal.niixTotal1212main()int i;float x10, value, total;/*.READING VALUES
5、 INTO ARRAY.*/printf(ENTER 10 REAL NUMBERSn);for(i=0;i10;i+)scanf(%f,&value);xi=value;/*.COMPUTATION OF TOTAL.*/total=0.0;for(i=0;i10;i+)total=total+xi*xi;/*.PRINTING OF xi VALUES AND TOTAL.*/printf(n);for(i=0;i10;i+)printf(x%2d=%5.2fn,i,xi);printf(ntotal=%.2fn,total);13main()int i;float x10, to
6、tal=0;/*.READING VALUES INTO ARRAY.*/printf(ENTER 10 REAL NUMBERSn);for(i=0;i10;i+)scanf(%f, &xi); total=total+xi*xi;/*.PRINTING OF xi VALUES AND TOTAL.*/printf(n);for(i=0;i10;i+)printf(x%2d=%5.2fn, i, xi);printf(ntotal=%.2fn, total);簡化上述程序:簡化上述程序:14 一維數(shù)組的初始化一維數(shù)組的初始化n 數(shù)組的初始化數(shù)組的初始化和變量類似,和變量類似,C語言
7、允許定義數(shù)組時對各元素給語言允許定義數(shù)組時對各元素給定初始值。定初始值。15一維數(shù)組的初始化一維數(shù)組的初始化例如:例如:int a4=12 , 4, 8 , 2n 初始化格式:初始化格式:static =;12482a2=?a2=816說明:說明:n 初值列表中的數(shù)值用逗號分隔。初值列表中的數(shù)值用逗號分隔。n 如果不進(jìn)行初始化,得到隨機(jī)值。如果不進(jìn)行初始化,得到隨機(jī)值。17說明:說明:n 初始化時,若對所有的元素都賦以初值,可不必初始化時,若對所有的元素都賦以初值,可不必指出元素個數(shù)。系統(tǒng)可以根據(jù)指出元素個數(shù)。系統(tǒng)可以根據(jù) 中的初值個數(shù)確中的初值個數(shù)確定數(shù)組的實(shí)際長度。定數(shù)組的實(shí)際長度。例:例
8、: int a=1,2,45 可知該數(shù)組的大小為可知該數(shù)組的大小為3.18n 初始化時,也可以只對部分元素賦值。初始化時,也可以只對部分元素賦值。例:例: int a5= 1, 3, 5 ; a3、a4的值為的值為0. char city5=a; 其余元素為空其余元素為空說明:說明:例:例: int a5= 0,0,0,0,0 ; 等價于:等價于: int a5=0; /部分初始化,其余元素均為部分初始化,其余元素均為0 int a3=0; printf(%d,a1); int a3; printf(“%d”,a1);/*隨機(jī)值隨機(jī)值*/19n 當(dāng)數(shù)組長度與初值數(shù)據(jù)個數(shù)不相等時,在定義數(shù)當(dāng)數(shù)組
9、長度與初值數(shù)據(jù)個數(shù)不相等時,在定義數(shù)組時不能省略數(shù)組長度。組時不能省略數(shù)組長度。例如:例如: int a= 1 ,3 ,5 系統(tǒng)當(dāng)作數(shù)組系統(tǒng)當(dāng)作數(shù)組a的大小的大小 為為3。n 初值列表中的值的數(shù)據(jù)類型要和初值列表中的值的數(shù)據(jù)類型要和一致。一致。20說明:說明:注意注意A與與A的區(qū)別:的區(qū)別:前者是字符,是常量,后者是變量。前者是字符,是常量,后者是變量。n 給字符數(shù)組賦值時,是由給字符數(shù)組賦值時,是由 引起來的單個字符。引起來的單個字符。21 總結(jié):給一維數(shù)組賦值總結(jié):給一維數(shù)組賦值n 初始化初始化n 逐個賦值逐個賦值例:例:int a3 a0=2; a1=3;a2=6;n 采用輸入語句采用輸
10、入語句#define N 10 int aN; for(i=0; iN; i+) scanf(“%d”, &ai); 22 一維數(shù)組的使用一維數(shù)組的使用n 對數(shù)組元素的引用格式對數(shù)組元素的引用格式數(shù)組名數(shù)組名下標(biāo)下標(biāo) 表示數(shù)組的第表示數(shù)組的第(下標(biāo)下標(biāo)+1)個位置的元素。)個位置的元素。可以視為一個簡單變量??梢砸暈橐粋€簡單變量。例如:例如:a4=3; b=a3+2; printf(“%d”,a3); 23說明:說明:n int a5 與與a5中的中的a5是否表示同一含義?是否表示同一含義?不是。不是。前者表示一個大小為前者表示一個大小為5的數(shù)組,后者表示數(shù)組的數(shù)組,后者表示數(shù)組a中的
11、第中的第6個位置的元素。個位置的元素。 24說明:說明:n 下標(biāo)可以是整型表達(dá)式下標(biāo)可以是整型表達(dá)式n 注意下標(biāo)的有效范圍注意下標(biāo)的有效范圍25例例 7_2A :用數(shù)組來處理求:用數(shù)組來處理求Fibonacci數(shù)列數(shù)列main() int i ; int f20=1,1; for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(n); printf(%12d,fi); getch();26void main() int i, j, temp; int x5=8,6,5,4,1; for(i=0,j=4;i=2;i+,j-)
12、tem=xi; xi=xj; xj=tem; for(i=0;i=4;i+) printf(%d , xi);以下程序的輸出是什么?功能?以下程序的輸出是什么?功能?27例例 7_2B :用冒泡法對:用冒泡法對10個數(shù)排序(從小到大)個數(shù)排序(從小到大)例如:例如:有一組數(shù)據(jù)為:48, 37, 64, 97, 75, 12, 26, 49采用冒泡排序:采用冒泡排序:第1趟排序后成為:37, 48, 64, 75, 12, 26, 49, 97第2趟排序后成為:37, 48, 64, 12, 26, 49, 75, 97第3趟排序后成為:37, 48, 12, 26, 49, 64, 75, 9
13、7第4趟排序后成為:37, 12, 26, 48, 49, 64, 75, 97第5趟排序后成為:12, 26, 37, 4 8, 49, 64, 75, 97第6趟排序后成為:12, 26, 37, 4 8, 49, 64, 75, 97第7趟排序后成為:12, 26, 37, 4 8, 49, 64, 75, 9728對于有對于有n個數(shù)據(jù)的集合,要經(jīng)過個數(shù)據(jù)的集合,要經(jīng)過(n 1)趟排序;趟排序;每一趟排序都會把集合中最大的那個數(shù)每一趟排序都會把集合中最大的那個數(shù)排到最后。排到最后。29例例 7_2B :用冒泡法對:用冒泡法對10個數(shù)排序(從小到大)個數(shù)排序(從小到大)30 例例7_2C:
14、求:求10個數(shù)的最大值、最小值及平均值個數(shù)的最大值、最小值及平均值main() int a10,i,max,min,sum; float ave; printf(input 10 numbers:n); for(i=0;i=9;i+) scanf(%d, &ai); max=min=sum=a0; for (i=1;i=9;i+) if (maxai) min=ai; sum=sum+ai; ave=sum/10; printf(the max is %d,min is %d,ave is %f,max,min,ave); getch(); 31下面的程序完成將一個十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)
15、制,請?zhí)羁眨合旅娴某绦蛲瓿蓪⒁粋€十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制,請?zhí)羁眨簐oid main(void) int i=0,j,n,r; char num4=0; printf(Enter a number:); scanf(%d,&n); do r=_; if(r=0;j-) printf(%c,numj);n%16r+0r-10+An/1632用于存放字符或字符串。用于存放字符或字符串。如:如:char w7=s, t, u, d, e, n, t;w是一個可以存放7個字符的數(shù)組而:char u8=student;(或?qū)懗桑篶har u =student; )u是一個可存放8個字符的數(shù)組33對
16、上面兩種數(shù)組定義,有:對上面兩種數(shù)組定義,有:w0=u0=sw1=u1=tw2=u2=uw3=u3=dw4=u4=ew5=u5=nw6=u6=tu7=034 字符串用雙引號字符串用雙引號 括起來。括起來。 字符串的結(jié)束標(biāo)志為字符串的結(jié)束標(biāo)志為0, 由系統(tǒng)提供。由系統(tǒng)提供。例:例:char bn =computer;則:數(shù)組則:數(shù)組bn的長度為的長度為9bn0=cbn3=pbn6=ebn1=obn4=ubn7=rbn2=mbn5=tbn8=035格式符格式符: : %c 逐個輸入逐個輸入/輸出字符。輸出字符。 %s 整個串一次輸入整個串一次輸入/輸出。輸出。1. 輸出輸出 (用用%s) 在在pr
17、intf中須直接寫數(shù)組名中須直接寫數(shù)組名. char c =I am a student; printf(%s, c); 用用%s輸出時輸出時,不輸出不輸出 0.36 若數(shù)組長度大于字符串長度若數(shù)組長度大于字符串長度,則遇到則遇到0 即停止輸即停止輸出出 char c10= china; printf( %s, c); 輸出時遇到第一個輸出時遇到第一個0即結(jié)束。即結(jié)束。372. 輸入輸入(用用%s) 輸入多個字符串輸入多個字符串,可用可用空格空格隔開。隔開。 char str15, str25, str35; scanf( %s%s%s, str1, str2,str3); 輸入字符串時輸入字
18、符串時, 系統(tǒng)自動加上系統(tǒng)自動加上0則則: 輸入 How are you str1: H o w str2: a r e str3: y o u 注意:注意:scanf函數(shù)中的輸入項(xiàng)是字符數(shù)組名。輸入項(xiàng)為字符數(shù)組名時,不要再加地址符&38輸入輸入: : How are you 則只會將How輸入,且存為str: H o w 0 但若但若: : char str13 scanf(%s, str);39例例1.1. #include main( ) char st1 = abcdefg; char st2 =s, t, u, d, e, n, t; char bt14=ABED; char
19、 bt2 =c, o, m, p, u, t, e, r, 0; printf(st1=%snst2=%sn, st1, st2); printf(bt1=%snbt2=%sn, bt1, bt2);結(jié)果:結(jié)果:只有st1和bt2的結(jié)果是正確的。st2和bt1的結(jié)果隨系統(tǒng)不同而不同。40#include main( ) char name13; int i; for (i =0; i =12; i +)scanf(“ %c”, &namei); for (i =0; i =12; i +)printf(“ %c”, namei); scanf(“ %s”, name); printf(
20、“ %s”, name);例例2 2:采用不同的方式輸入輸出字符串運(yùn)行結(jié)果運(yùn)行結(jié)果:Pear & Apple Pear & ApplePear & Apple Pear scanf中須用地址量,數(shù)組名表示地址量。中須用地址量,數(shù)組名表示地址量。4142多維數(shù)組多維數(shù)組只是邏輯上的概念,從存儲的角度而言,只是邏輯上的概念,從存儲的角度而言,它們和它們和一維數(shù)組一維數(shù)組相同,按元素順序有序地排列。相同,按元素順序有序地排列。43二維數(shù)組二維數(shù)組44形式:形式:例例: : int a4 10; float x8 20;類型說明符類型說明符 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式1
21、常量表達(dá)式常量表達(dá)式2452. 可將二維數(shù)組的元素看成為若干個特殊可將二維數(shù)組的元素看成為若干個特殊的一維數(shù)組。的一維數(shù)組。 可看成:可看成:有三個特殊的一維數(shù)組b0,b1, b2,每一個又有四個元素:1. 不可將定義寫為不可將定義寫為int a4,10。注意:注意:b00, b01, b02, b03,b10, b11, b12, b13,b20, b21, b22, b23,如如: int b3 4;463. 二維數(shù)組的存放方式為二維數(shù)組的存放方式為: 按行優(yōu)先。由此可按行優(yōu)先。由此可推廣至三維、推廣至三維、n維數(shù)組的定義和存放。維數(shù)組的定義和存放。4. 初始化初始化:即即: 最右邊的下標(biāo)
22、變化最快。 按行給二維數(shù)組賦初值按行給二維數(shù)組賦初值: int a34=1,2,3,4, 5,6,7,8, 9,10,11,12;或:或: int a34=1,2,3,4,5,6,7,8,9,10,11,12;47 可以對部分元素賦初值可以對部分元素賦初值,但需表達(dá)清楚。但需表達(dá)清楚。則相當(dāng)于若:若: int a34=1,2,3,8則相當(dāng)于000000008321000800030021如如: int a34=1,2,3,8。48 可通過賦初值決定數(shù)組大小。如為二維可通過賦初值決定數(shù)組大小。如為二維,則只可省略第一維的大小。則只可省略第一維的大小。int a 4=1,2,3,12;49形式形式
23、: :其中的下標(biāo)為整型表達(dá)式其中的下標(biāo)為整型表達(dá)式, ,但不得越界。但不得越界。與一維數(shù)組元素一樣與一維數(shù)組元素一樣, ,二維數(shù)組元素相當(dāng)二維數(shù)組元素相當(dāng)于同類型的簡單變量。于同類型的簡單變量。數(shù)組名數(shù)組名下標(biāo)下標(biāo)1下標(biāo)下標(biāo)250 a=1 2 34 5 6b=1 42 5 3 6例例1:1: 將一個二維數(shù)組行和列元素互換,存到另一個二維數(shù)組中。例如:例如:51 printf(array a: n); for (i=0; i=1; i+) for (j=0; j=2; j+) printf(%5d, aij); bji=aij; printf(n); printf(array b:n); for
24、 (i=0; i=2; i+) for (j=0; j=1; j+) printf(%5d, bij); printf(n); #include main ( ) int a2 3=1, 2,3,4, 5,6; int b3 2, i, j;52 array a: 1 2 3 4 5 6 array b: 1 4 2 5 3 653注意:注意: 數(shù)組元素數(shù)據(jù)的輸入必須以循環(huán)方式數(shù)組元素數(shù)據(jù)的輸入必須以循環(huán)方式進(jìn)行或者定義時置初值。進(jìn)行或者定義時置初值。 二維數(shù)組一般用二重循環(huán)對每個元素二維數(shù)組一般用二重循環(huán)對每個元素賦值。賦值。 54 二維數(shù)組應(yīng)用舉例二維數(shù)組應(yīng)用舉例n 例例7_3A:有:有M
25、個學(xué)生,學(xué)習(xí)個學(xué)生,學(xué)習(xí)N門課程,已知所有學(xué)生的各門課程,已知所有學(xué)生的各科成績,編程:分別求每個學(xué)生的平均成績和每門課程的科成績,編程:分別求每個學(xué)生的平均成績和每門課程的平均成績。平均成績。55n 例:例:有有M個學(xué)生,學(xué)習(xí)個學(xué)生,學(xué)習(xí)N門課程,已知所有學(xué)生的各門課程,已知所有學(xué)生的各科成績,編程:分別求每個學(xué)生的平均成績和每門課程科成績,編程:分別求每個學(xué)生的平均成績和每門課程的平均成績。的平均成績。 第第1 1門課門課第第2 2門課門課第第3 3門課門課第第4 4門課門課第第1 1個學(xué)生個學(xué)生第第1 1個學(xué)生個學(xué)生平均成績平均成績第第2 2個學(xué)生個學(xué)生第第2 2個學(xué)生個學(xué)生平均成績平均成績第第3 3個學(xué)生個學(xué)生第第3 3個學(xué)生個學(xué)生平均成績平均成績第第1 1門課平門課平均成績均成績第第2 2門課平門課平均成績均成績第第3 3門課平門課平均成績均成績第第4 4門課平門課平均成績均成績以以3個學(xué)生,個學(xué)生,4門課程為例設(shè)計數(shù)組如下:門課程為例設(shè)計數(shù)組如下:5
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代學(xué)生餐廳的照明與色彩搭配藝術(shù)
- 深度解讀網(wǎng)絡(luò)輿情的來源與影響研究報告解讀分享
- 現(xiàn)代金融行業(yè)中的移動支付技術(shù)與教育普及
- 快手國慶節(jié)的活動方案
- 國慶假期活動方案
- 國慶節(jié)酒店漲價活動方案
- 2、3、4的乘法口訣(說課稿)-2024-2025學(xué)年二年級上冊數(shù)學(xué)人教版
- Unit1 There is a horse in this photo(說課稿)-2024-2025學(xué)年外研版(三起)四年級上冊001
- 17《他們那時候多有趣啊》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文六年級下冊
- 13 我能行(說課稿)-統(tǒng)編版(五四制)道德與法治二年級下冊
- 春節(jié)后復(fù)工安全教育培訓(xùn)考試試題及答案
- 寄宿制學(xué)校工作總結(jié)
- 小學(xué)數(shù)學(xué)6年級應(yīng)用題100道附答案(完整版)
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- JT-T 1495-2024 公路水運(yùn)危險性較大工程專項(xiàng)施工方案編制審查規(guī)程
- JT-T-390-1999突起路標(biāo)行業(yè)標(biāo)準(zhǔn)
- 人教版二年級上冊加減混合計算300題及答案
- 2023年四川省成都市武侯區(qū)中考物理二診試卷(含答案)
- 《也是冬天-也是春天》
- 鮮切水果行業(yè)分析
- 第7章-無人機(jī)法律法規(guī)
評論
0/150
提交評論