C語(yǔ)言程序設(shè)計(jì) 第3版 課件 第8章 數(shù)組_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件 第8章 數(shù)組_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件 第8章 數(shù)組_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件 第8章 數(shù)組_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 第3版 課件 第8章 數(shù)組_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一維數(shù)組二維數(shù)組字符數(shù)組第八章數(shù)組具有相同數(shù)據(jù)類型的若干個(gè)有序數(shù)據(jù)的集合1、數(shù)組的概念2、數(shù)組的分類8.1一維數(shù)組實(shí)例導(dǎo)入從鍵盤(pán)輸入10個(gè)學(xué)生的成績(jī),要求能夠求出總分和平均分。解析:1、定義一個(gè)一維數(shù)組score[10];2、定義總分sum,平均分average;3、向一維數(shù)組score[10]中輸入數(shù)據(jù);4、求出sum和average;5、輸出sum和average.一、一維數(shù)組的定義一維數(shù)組定義的一般形式:類型說(shuō)明符數(shù)組名[常量表達(dá)式];

例:floats[8];longt[10];S[0]S[1]S[2]S[3]S[4]S[5]S[6]S[7]t[0]t[1]t[2]t[3]t[4]t[5]t[6]t[7]t[8]t[9]二、一維數(shù)組的初始化例:floats[6];S[0]S[1]S[2]S[3]S[4]S[5]如何給數(shù)組s賦一組初始值{65.5,89.2,90,89.8,45.5,60}1、依次賦值。s[0]=65.5;s[1]=89.2;s[2]=90;s[3]=89.8;s[4]=45.5;s[5]=60;2、全體賦值。s[6]={65.5,89.2,90,89.8,45.5,60}3、定義時(shí)賦值s[]={65.5,89.2,90,89.8,45.5,60}4、省略型賦值s[6]={65.5,89.2,0,0,0,0}s[6]={65.5,89.2}三、一維數(shù)組元素的引用例:floats[6];658990894560S[0]S[1]S[2]S[3]S[4]S[5]一維數(shù)組元素引用的一般形式:數(shù)組名[下標(biāo)]四、一維數(shù)組實(shí)訓(xùn)實(shí)訓(xùn)1:有8個(gè)整數(shù){89,88,67,23,45,54,0,0},要求編程求出這8個(gè)整數(shù)的和、平均值、最大值和最小值。floatnum[8];num[8]={89,88,67,23,45,54,0,0};sum=0;sum=sum+num[0];sum=sum+num[1];sum=sum+num[2];sum=sum+num[3];sum=sum+num[4];sum=sum+num[5];sum=sum+num[6];sum=sum+num[7];for(i=0;i<8;i++)sum=sum+num[i];average=sum/8;max=num[0];min=num[0];for(i=0;i<8;i++)If(num[i]>max)max=num[i];If(num[i]<min)min=num[i];for(i=0;i<8;i++)sum=sum+num[i];average=sum/8;printf(“sum=%f,average=%.1f,max=%.1f,min=%.1f”,sum,average,max,min);},sum,max,min,average;main(){}例1:一維數(shù)組的輸入和輸出定義一個(gè)整型數(shù)組arr[10],向其中輸入10個(gè)數(shù)據(jù)并依次輸出main(){intarr[10];inti;for(i=0;i<10;i++)scanf(“%d”,&arr[i]);printf(“\n該一維數(shù)組為”:);for(i=0;i<10;i++)printf(“%5d”,arr[i]);}循環(huán)實(shí)現(xiàn)一維數(shù)組的輸入循環(huán)實(shí)現(xiàn)一維數(shù)組的輸出例2:一維數(shù)組的排序定義一個(gè)整型數(shù)組arr[10],向其中輸入10個(gè)數(shù)據(jù)并按照從小到大的順序依次輸出main(){intarr[10];inti;for(i=0;i<10;i++)scanf(“%d”,&arr[i]);for(i=0;i<10;i++)for(j=i+1;j<10;j++)if(arr[j]<arr[i]){t=arr[j];arr[j]=arr[i];arr[i]=t;}printf(“排序后的數(shù)組為:\n”);for(i=0;i<10;i++)printf(“%5d”,arr[i]);}冒泡排序main(){intarr[10];inti;for(i=0;i<10;i++)scanf(“%d”,&arr[i]);for(i=0;i<10;i++)for(j=i+1;j<10;j++)if(arr[j]<arr[i]){t=arr[j];arr[j]=arr[i];arr[i]=t;}printf(“排序后的數(shù)組為:\n”);for(i=0;i<10;i++)printf(“%5d”,arr[i]);}插入排序8.2二維數(shù)組一、二維數(shù)組的定義floatscore[2][10];上一頁(yè)010123456789score[0][0]score[1][3]score[0][6]二維數(shù)組定義的一般形式:類型說(shuō)明符數(shù)組名[常量表達(dá)式][常量表達(dá)式];二、二維數(shù)組元素的初始化例:現(xiàn)有一個(gè)二維數(shù)組s[3][4],如何實(shí)現(xiàn)將以下數(shù)據(jù)賦給s:1120580034558901、按行賦值score[3][4]={{1,1,2,0},{5,8,0,0},{34,55,89,0}};score[][4]={{1,1,2},{5,8},{34,55,89}};2、全部賦值score[3][4]={1,1,2,0,5,8,0,0,34,55,89,0};score[3][4]={1,1,2,0,5,8,0,0,34,55,89};3、數(shù)組元素的引用上一頁(yè)二維數(shù)組元素的引用形式為:數(shù)組名[下標(biāo)][小標(biāo)];二維數(shù)組使用實(shí)訓(xùn)實(shí)訓(xùn)1:

定義一個(gè)5行6列的二維整型數(shù)組s,向其中輸入數(shù)據(jù),并按行輸出.解析:1、定義一個(gè)二維數(shù)組s;2、向其中輸入5行6列30個(gè)數(shù)據(jù)3、輸出這5行6列30個(gè)數(shù)據(jù)main(){ints[5][6];inti,j;for(i=0;i<5;i++)for(j=0;j<6;j++)scanf("%d",&s[i][j]);for(i=0;i<5;i++)for(j=0;j<6;j++)printf("%4d",s[i][j]);

}printf(“\n”);printf(“請(qǐng)輸入第%d行數(shù)據(jù):\n”,i);實(shí)訓(xùn)2:數(shù)據(jù)的查找現(xiàn)有一個(gè)二維數(shù)組num,其初始值如下num[3][6]={{3,4,11,12,14,19},{21,20,14,18,30,23},{43,2,23,45,42,1}};要求從鍵盤(pán)輸入一個(gè)數(shù)據(jù)number,在數(shù)組num中進(jìn)行查找,假如該數(shù)存在,就輸出該數(shù)和其所在的行數(shù)和列數(shù);假如不存在,就輸出”Nothisnumber!”floatnum[3][6],number;inti,j;scanf(“%d”,&number);for(i=0;i<3;i++)for(j=0;j<6;j++)If(num[i][j]==number){printf("%d,%d,%d\n",number,i,j);break;}If(i>3)printf(“Nothisnumber!”);

}main(){

有一個(gè)二維數(shù)組,編寫(xiě)一程序,求該二維數(shù)組兩對(duì)角線的和,并找出該二維數(shù)組中的最大值和最小值及其所在位置。

如該二維數(shù)組為:

34121510

789087

801910021

45233543

則程序運(yùn)行結(jié)果為:和為260,最大值為100,位于第2行第2列。最小值為0,位于第1行第2列。實(shí)訓(xùn)3思考1:編寫(xiě)一個(gè)程序,實(shí)現(xiàn)這樣的功能,從鍵盤(pán)輸入一個(gè)二維數(shù)組S[3][4]后,可以實(shí)現(xiàn)將該二維數(shù)組中的每個(gè)數(shù)組元素的值加5。比如當(dāng)輸入的二維數(shù)組如下:

123456789101112

則轉(zhuǎn)換后輸出的二維數(shù)組為:

67891011121314151617算法描述:1、定義二維數(shù)組S[3][4];2、向二維數(shù)組中輸入數(shù)值3、將轉(zhuǎn)換前的二維數(shù)組輸出來(lái)4、使每個(gè)數(shù)組元素的值增55、將轉(zhuǎn)換后的二維數(shù)組輸出來(lái)ints[3][4];for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&s[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%5d”,s[i])[j]);s[i][j]=s[i][j]+5;printf(“\n”);}for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%5d”,s[i][j]);printf(“\n”);}main(){}ints[3][4];for(i=0;i<3;i++)for(j=0;j<4;j++)scanf(“%d”,&s[i][j]);for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%5d”,s[i])[j]);printf(“\n”);}for(i=0;i<3;i++)for(j=0;j<4;j++)s[i][j]=s[i][j]+5;for(i=0;i<3;i++){for(j=0;j<4;j++)printf(“%5d”,s[i][j]);printf(“\n”);}inti,j;main(){}上一頁(yè)inti,j;

編寫(xiě)一個(gè)程序,實(shí)現(xiàn)這樣的功能,從鍵盤(pán)輸入一串字符信息后,可以實(shí)現(xiàn)將該串字符信息按照一定的方式轉(zhuǎn)換為密文。比如當(dāng)輸入“Meet”

如果轉(zhuǎn)換密鑰為5,則字符串中的每個(gè)字符都轉(zhuǎn)換為其后面的第5個(gè)字符.

轉(zhuǎn)換后的字符串為:Rjjy

編程實(shí)現(xiàn)當(dāng)輸入一段字符后,并輸入密鑰,則按照密鑰將所輸入的字符串轉(zhuǎn)化為一段密文并輸出.思考2:跳轉(zhuǎn)8.3字符數(shù)組一、字符數(shù)組的定義charmingwen[500],miwen[500];字符數(shù)組定義的一般形式:char數(shù)組名[常量表達(dá)式];二、字符數(shù)組元素的引用第i個(gè)元素的引用形式:數(shù)組名[i];三、字符數(shù)組的初始化1、逐個(gè)字符賦值例:charname[20];name[20]={‘Z’,’h’,’a’,’n’,’g’,’L’,’e’,’i’‘};2、以字符串方式賦值例:charname[20];name[20]={“ZhangLei”};name[20]=“ZhangLei”;注意:存儲(chǔ)時(shí),在末尾自動(dòng)填‘\0’作為字符串結(jié)束標(biāo)志.四、字符數(shù)組的輸入和輸出1、輸入1)逐個(gè)字符輸入例:現(xiàn)在需要向字符數(shù)組score[10]中輸入內(nèi)容,并將內(nèi)容輸出來(lái).該如何實(shí)現(xiàn).for(i=0;i<10;i++)scanf(“%c”,&score[i]);2)一次性輸入scanf(“%s”,score);2、輸出1)逐個(gè)字符輸出for(i=0;i<10;i++)printf(“%c”,score[i]);2)一次性輸出printf(“%s”,score);返回思考思考:從鍵盤(pán)輸入一段字符,并能夠統(tǒng)計(jì)出這段字符的個(gè)數(shù)。main(){charstr[200],len,i;printf(“請(qǐng)輸入一段英文字符:”);scanf(“%s”,str);len=0;i=0;while(str[i]!=‘\0’)len++;printf(“該段字符所包含的字符個(gè)數(shù)為:%d”,len);}gets(str);五、常用的字符串處理函數(shù)1、puts函數(shù):字符串輸出函數(shù)一般使用形式:puts(字符數(shù)組);例:charname[]=“Liu’an”;puts(name);

2、gets函數(shù):字符串輸入函數(shù)一般使用形式:gets(字符數(shù)組);例:charname[15];gets(name);3、strcat函數(shù)一般使用形式:strcat(數(shù)組1,數(shù)組2);charsurname[15]=“Zhang”;

charfirstname[]=“Lin”;Zhang

Lin\0\0\0\0\0\0連接后的結(jié)果strcat(surname,firstname);4、strcpy函數(shù)一般使用形式:strcpy(數(shù)組1,數(shù)組2);charsurname[15]=“Zhang”;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論