二級考試C語言程序設(shè)計(jì)3課件_第1頁
二級考試C語言程序設(shè)計(jì)3課件_第2頁
二級考試C語言程序設(shè)計(jì)3課件_第3頁
二級考試C語言程序設(shè)計(jì)3課件_第4頁
二級考試C語言程序設(shè)計(jì)3課件_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章數(shù)組本章主要知識點(diǎn)

(1)一維數(shù)組的定義和引用。Inta[100];a[0]a[1]a[2]a[99]

(2)二維數(shù)組的定義和引用。

(3)字符數(shù)組與字符串的應(yīng)用。.第4章數(shù)組4.2一維數(shù)組的定義和引用4.3二維數(shù)組的定義和引用4.5綜合實(shí)訓(xùn)4.4字符數(shù)組與字符串4.1數(shù)組應(yīng)用的C程序?qū)嵗?/p>

.2.C程序?qū)嵗?1.C程序?qū)嵗?4.1數(shù)組應(yīng)用的C程序?qū)嵗?/p>

數(shù)組是若干具有相同數(shù)據(jù)類型且按一定存儲順序排列的一組變量。數(shù)組中的變量稱數(shù)組元素。每一個(gè)元素通過數(shù)組名和存儲位置(下標(biāo))來確定。根據(jù)確定數(shù)組的一個(gè)元素所需要的下標(biāo)數(shù)把數(shù)組分為一維數(shù)組、二維數(shù)組、三維數(shù)組等,二維以上的數(shù)組也稱為多維數(shù)組。.4.1.1C程序?qū)嵗?)1.C程序?qū)嵗?【例4.1】應(yīng)用一維數(shù)組,實(shí)現(xiàn)從鍵盤輸入10個(gè)整數(shù),輸出其中的最小數(shù)。程序名為l4_1.cpp。#include"stdio.h"main(){inta[10],i,min; /*定義一維整型數(shù)組a及整型變量i和min, 數(shù)組a有10個(gè)元素*/for(i=0;i<10;i++) /*循環(huán)輸入數(shù)組a的10個(gè)元素*/ scanf("%d",&a[i]);min=a[0]; /*設(shè)a[0]元素為最小值min的初值*/for(i=1;i<10;i++) /*逐個(gè)元素與min比較,找出最小值*/ if(min>a[i]) min=a[i];printf("MIN=%d\n",min); /*輸出找到的最小值min*/}.[例4.1]程序結(jié)果在【例4.1】程序?qū)嵗校斎?0個(gè)整型數(shù)12,34,56,9,21,-12,34,0,-3,1分別存放在一維數(shù)組a的10個(gè)元素中。故程序運(yùn)行結(jié)果見下圖所示。

輸入數(shù)據(jù)輸出結(jié)果.4.1.1C程序?qū)嵗?)2.C程序?qū)嵗?【例4.2】應(yīng)用二維數(shù)組,實(shí)現(xiàn)從鍵盤為2

3數(shù)組輸入值,并輸出數(shù)組所有元素之和。程序名為l4_2.cpp。#include"stdio.h"main(){inta[2][3],i,j,sum=0; /*定義二維整型數(shù)組a及整型變量i,j和 sum,數(shù)組a有2行3列6個(gè)元素*/for(i=0;i<2;i++) /*按行向數(shù)組a輸入6個(gè)元素,并將元素 值送入sum進(jìn)行累加求和*/ for(j=0;j<3;j++) {scanf("%d",&a[i][j]); sum+=a[i][j]; }printf("Sum=%d\n",sum); /*輸出和值sum*/}.[例4.2]程序結(jié)果在【例4.2】程序?qū)嵗校斎?個(gè)整型數(shù)23,12,45,-12,-34,35分別存放在二維數(shù)組a兩行三列的6個(gè)元素中。故程序運(yùn)行結(jié)果見下圖所示。

輸入數(shù)據(jù)輸出結(jié)果.4.2.2一維數(shù)組元素的引用4.2.1一維數(shù)組的定義4.2一維數(shù)組的定義和引用

4.2.3一維數(shù)組的初始化.定義數(shù)組時(shí),應(yīng)該注意以下幾點(diǎn):(1)常量表達(dá)式的值必須是一個(gè)正的整數(shù)值。(2)數(shù)組定義后,數(shù)組的長度就不能再改變。(3)定義時(shí),可用一個(gè)類型說明符來定義多個(gè)相同類型的數(shù)組和變量,相互之間用逗號分隔。如【例4.1】程序?qū)嵗小癷nta[10],i,min;”定義了一維整型數(shù)組a和整型變量i及min。

4.2.1一維數(shù)組的定義一維數(shù)組定義的一般格式為:類型說明符數(shù)組名[常量表達(dá)式];

在【例4.1】實(shí)例中“inta[10];”表示數(shù)組名是a,數(shù)組元素是整型,數(shù)組有10個(gè)元素。故定義了一個(gè)10個(gè)元素的整型數(shù)組a。

(1)類型說明符可以是int、char和float等,指明該數(shù)組的類型,即數(shù)組中每個(gè)元素的類型;(2)數(shù)組名的命名規(guī)則遵循標(biāo)識符的命名規(guī)則,它代表數(shù)組存儲時(shí)的首地址;(3)常量表達(dá)式是指數(shù)組的長度,即數(shù)組元素的個(gè)數(shù)。.【例4.1】程序?qū)嵗小癷nta[10]”定義了一個(gè)10元素的整型數(shù)組a,則數(shù)組的10個(gè)元素分別是a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],通過for(i=0;i<10;i++)scanf("%d",&a[i]);語句完成數(shù)組元素賦值,即輸入給10個(gè)元素a[0]到a[9]。min=a[0];功能是假設(shè)a[0]元素為最小元素,將其值賦給記錄最小值的變量min。語句for(i=1;i<10;i++)if(min>a[i])min=a[i];完成從a[1]到a[9]逐個(gè)元素與min比較,并將較小的元素值賦給min。最后循環(huán)結(jié)束后,min存儲的是最小元素的值。輸出語句printf("MIN=%d\n",min);執(zhí)行后,輸出結(jié)果為:MIN=-12。注意:在一維數(shù)組引用過程中要防止下標(biāo)越界問題。如“inta[10]”定義的數(shù)組a,數(shù)組a中不包括a[10]元素,下標(biāo)為10已經(jīng)越界。對于數(shù)組下標(biāo)越界問題,C語言編譯系統(tǒng)不進(jìn)行檢測,即不進(jìn)行錯(cuò)誤報(bào)告,只是會造成程序運(yùn)行結(jié)果的錯(cuò)誤。4.2.2一維數(shù)組元素的引用

數(shù)組的使用仍然遵從“先定義,后使用”的原則。數(shù)組使用是通過數(shù)組元素引用實(shí)現(xiàn)的,而不能直接使用整個(gè)數(shù)組,每一個(gè)數(shù)組元素就是一個(gè)簡單變量。一維數(shù)組的數(shù)組元素表示形式為:

數(shù)組名[下標(biāo)]

下標(biāo)是一個(gè)整型常量或整型表達(dá)式。一維數(shù)組元素的下標(biāo)從0開始,如果數(shù)組長度為n,則元素的最大下標(biāo)為n-1。.4.2.3一維數(shù)組的初始化

類型說明符數(shù)組名[常量表達(dá)式]={初始值表};

一維數(shù)組初始化時(shí),要注意以下兩點(diǎn):(1)當(dāng)初始化,初始值表給出全部元素值時(shí),則數(shù)組長度可缺省。如,前例造價(jià)于inta[]={12,-3,4,0,367};(2)給數(shù)組中的部分元素賦初始值。如,inta[5]={1,2,3};則按照下標(biāo)遞增的順序依次賦值,后兩個(gè)元素系統(tǒng)自動(dòng)賦0值。即a[0]=1,a[1]=2,a[2]=3,而a[3]和a[4系統(tǒng)自動(dòng)賦值為0。(3)數(shù)組中的全部元素賦初值為0。如,inta[5]={0};

在定義一維數(shù)組同時(shí)給數(shù)組元素賦初始值,稱為一維數(shù)組的初始化。一般格式為:

初始值表中數(shù)據(jù)與數(shù)組元素依次對應(yīng),初始值表中的數(shù)據(jù)用逗號(,)分隔。如,inta[5]={12,-3,4,0,367};則數(shù)組a的5個(gè)元素依次取得初始值。.對輸入的10個(gè)整數(shù),完成以下任務(wù):1、輸出其中的最大值和最小值;2、輸出他們的平均值以及比平均值大的數(shù);.

#include"stdio.h"main(){inti;floatscore[10],aver=0.0;printf("Pleaseinputscoresof10students:");for(i=0;i<10;i++) /*輸入10位學(xué)生成績并累加和*/ {scanf("%f",&score[i]);aver+=score[i]; } aver/=10; /*求出10位學(xué)生的平均成績*/ printf("Theaveragescoreis:%.2f\n",aver); printf("Theyare:"); for(i=0;i<10;i++) /*輸出高于平均成績的學(xué)生成績*/ if(score[i]>aver) printf("%6.2f",score[i]);}4.5綜合實(shí)訓(xùn)(1【例4.5】

)【例4.5】輸入10位學(xué)生的成績,求出平均分,并輸出高于平均分的同學(xué)成績。程序名為l4_5.cpp。

.4.5綜合實(shí)訓(xùn)(1【例4.5】結(jié)果)

運(yùn)行結(jié)果

輸出平均成績輸出高于平均分成績輸入10個(gè)成績.從鍵盤上任意輸入10個(gè)整形數(shù)據(jù)存到數(shù)組a中,編程求出a中相鄰兩元素之和,并將這些和存放在數(shù)組b中,按每行3個(gè)元素的形式輸出。.4.3.2二維數(shù)組元素的引用4.3.1二維數(shù)組的定義

4.3二維數(shù)組的定義和引用

4.3.3二維數(shù)組的初始化.

二維數(shù)組被定義后,編譯系統(tǒng)將為該數(shù)組在內(nèi)存中分配一片連續(xù)的存儲空間,按行的順序連續(xù)存儲數(shù)組中的各個(gè)元素。即先順序存儲第一行元素,從a[0][0]到a[0][2],再存儲第二行的元素,從a[1][0]到a[1][2]。數(shù)組名a仍然代表數(shù)組的起始地址。

4.3.1二維數(shù)組的定義二維數(shù)組定義的一般格式為: 類型說明符

數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];(1)類型說明符和數(shù)組名含義均與一維數(shù)組相同。(2)二維數(shù)組區(qū)別于一維數(shù)組的根本在于數(shù)組名后有兩個(gè)常量表達(dá)式。常量表達(dá)式1表示行數(shù),而常量表達(dá)式2表示列數(shù)。也就是他們分別指出數(shù)組的行長度和列長度。

在【例4.2】實(shí)例中“inta[2][3];”表示數(shù)組名是a,數(shù)組元素是整型,數(shù)組有2行3列,共計(jì)6(2

3)個(gè)元素。即定義了一個(gè)2行3列的整型數(shù)組a。二維數(shù)組的行列下標(biāo)也是從0開始。則數(shù)組a的6個(gè)元素是:a[0][0],a[0][1],a[0][2]a[1][0],a[1][1],a[1][2].

for(i=0;i<2;i++) /*按行向數(shù)組a輸入6個(gè)元素,并將元素值送入 sum進(jìn)行累加求和*/ for(j=0;j<3;j++) {scanf("%d",&a[i][j]); sum+=a[i][j]; }外循環(huán)中變量i指示行下標(biāo),內(nèi)循環(huán)中變量j指示列下標(biāo),從而完成6次輸入,即231245-12-3435<CR>,輸入6個(gè)元素值,并將值依次送入sum變量累加求和。循環(huán)結(jié)束后,由輸出語句printf("Sum=%d\n",sum);完成累加和sum的輸出,結(jié)果為:Sum=694.3.2二維數(shù)組元素的引用二維數(shù)組元素的引用形式為: 數(shù)組名[行下標(biāo)][列下標(biāo)]

行(列)下標(biāo)表達(dá)式可以是整型常量、整型變量及表達(dá)式,表示二維數(shù)組的行(列)長度。下標(biāo)值仍然從0開始,到行(列)長度減1。

在【例4.2】程序?qū)嵗小癷nta[2][3];”,定義了一個(gè)2行3列的二維整型數(shù)組a,則在內(nèi)存中依次連續(xù)存儲的數(shù)組元素為a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2],通過循環(huán)嵌套語句給數(shù)組a的各個(gè)元素輸入值。如下:.(1)數(shù)組的全部元素都賦初值時(shí),則定義數(shù)組時(shí)對第一維長度可以缺省。如,inta[][3]={1,2,3,4,5,6};等價(jià)于

inta[2][3]={1,2,3,4,5,6};(2)在分行賦值時(shí)),可以在定義時(shí)省略第一維的長度。如,inta[][3]={{0},{0,3}};賦值后數(shù)組a的元素分別為:0 0 0 0 3 0

定義二維數(shù)組時(shí),給數(shù)組元素賦初值稱為二維數(shù)組初始化。二維數(shù)組初始化時(shí)要注意二維數(shù)組的元素排列順序。初始值的排列順序必須與數(shù)組元素在內(nèi)存的存儲順序完全一致。具體的方法如下:1.分行給二維數(shù)組賦初值。2.按數(shù)組排列順序?qū)Ω髟刭x初值。3.對部分元素賦初值。4.賦初值時(shí),有些情況可缺省第一維長度,但第二維長度不能缺省。

如,inta[2][3]={1,2,3,4,5,6};此方法數(shù)據(jù)所處的行列位置不直觀,尤其是數(shù)據(jù)多時(shí),數(shù)據(jù)存儲所在的行列需要仔細(xì)定位,容易出現(xiàn)錯(cuò)誤。4.3.3二維數(shù)組的初始化如,inta[2][3]={{1,2,3},{4,5,6}};按行賦初值的方法直觀。如,inta[2][3]={{1},{0,4}};此法對數(shù)組中各行部分元素賦初值,其余元素值自動(dòng)為0。即賦值后數(shù)組a的各元素為:1 0 0 0 4 0.4.4.2字符數(shù)組的初始化4.4.3字符數(shù)組的引用4.4.1字符數(shù)組的定義4.4字符數(shù)組與字符串4.4.4字符數(shù)組的輸入輸出4.4.5字符串處理函數(shù).4.4.1字符數(shù)組的定義

字符數(shù)組是用來存放字符數(shù)據(jù)的數(shù)組,即數(shù)組的數(shù)據(jù)類型是字符型(char)的數(shù)組稱為字符數(shù)組。字符數(shù)組的每個(gè)元素存放一個(gè)字符。字符數(shù)組的定義形式為:

一維字符數(shù)組定義:二維字符數(shù)組定義:如,charc[10]; /*定義了一個(gè)10個(gè)元素的一維字符數(shù)組c*/charc[2][10]; /*定義了一個(gè)2行10列的二維字符數(shù)組c*/由于字符型與整型是互相通用的,因此上面的定義也可改為:intc[10];intc[2][10];但是,此種方法定義會浪費(fèi)存儲空間。

char數(shù)組名[常量表達(dá)式];char數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];.字符串是用雙引號括起來的字符序列,在C語言中,字符串是利用字符數(shù)組來存放和處理的。(1)用字符串常量初始化一維字符數(shù)組。如,charc[]={“Howareyou”};也寫成:charc[]=“Howareyou”;相當(dāng)于:charc[]={‘H’,’o’,’w’,’‘,’a’,’r’,’e’,’‘,’y’,’o’,’u’,’\0’}(2)二維數(shù)組初始化時(shí),也可以使用字符串進(jìn)行初始化。例如:charc[][8]={"white","black"};4.4.2字符數(shù)組的初始化

1.用字符常量初始化數(shù)組2.用字符串常量初始化數(shù)組

(1)一維字符數(shù)組初始化,如,charc[10]={’a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’};(2)二維字符數(shù)組初始化,如,charc[2][10]={{’a’,’b’,’c’},{’d’,’e’,’’}};字符數(shù)組c各元素初值為:‘a(chǎn)’‘b’‘c’‘\0’‘\0’‘\0’‘\0’‘\0’‘\0’‘\0’ ‘d’‘e’‘’‘\0’‘\0’‘\0’‘\0’ ‘\0’‘\0’‘\0’(3)當(dāng)初值個(gè)數(shù)與字符數(shù)組長度相同,在定義時(shí)可以省略數(shù)組長度,系統(tǒng)會自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長度。

(4)用整型常量初始化字符數(shù)組。如,charc[5]={‘H’,111,119};.4.4.3字符數(shù)組的引用字符數(shù)組的引用,也是通過對數(shù)組逐個(gè)元素引用實(shí)現(xiàn)的。引用數(shù)組的元素可以得到一個(gè)字符。

【例4.3】應(yīng)用一維字符數(shù)組,輸入一個(gè)字符串。程序名為l4_3.cpp。#include"stdio.h"main(){charc[]="Howareyou!"; /*定義一維數(shù)組c有13元素*/inti;for(i=0;i<13;i++) /*通過循環(huán)控制輸出數(shù)組每個(gè)元素*/ printf("%c",c[i]);printf("\n");}運(yùn)行結(jié)果:Howareyou!.4.4.4字符數(shù)組的輸入輸出通過scanf()或getchar()對字符數(shù)組輸入賦值,通過printf()或putchar()對字符數(shù)組輸出,在1.4節(jié)中已介紹。使用scanf()和printf()完成輸入輸出時(shí),%c格式是逐個(gè)字符元素輸入輸出,而%s格式是對整個(gè)字符串一次完成輸入和輸出。在使用%s格式時(shí)請注意以下問題:(1)在scanf中使用格式說明符%s實(shí)現(xiàn)整串的輸入。如,charc[20];scanf(“%s”,c);執(zhí)行時(shí),若輸入:abcd<CR>則字符串將從數(shù)組c的起始地址(&c[0]或數(shù)組名c)開始依次放入數(shù)組c中,數(shù)組剩余空間補(bǔ)’\0’。(2)用%s格式符輸入字符串時(shí),空格、Tab符和回車符只能作為分隔符而不能輸入到數(shù)組中。如,若輸入字符串為:Howareyou!<CR>則只有字符串“How”存入到數(shù)組中,其余被截掉。(3)當(dāng)輸入項(xiàng)為數(shù)組元素的地址時(shí),輸入數(shù)據(jù)將從這一元素開始存放。(4)輸入字符串時(shí),避免發(fā)生越界。(5)在printf()中使用格式說明符%s可以實(shí)現(xiàn)整串的輸出。其調(diào)用形式為:printf(“%s”,c);c是存儲單元的首地址。調(diào)用這個(gè)函數(shù)時(shí),將從c地址開始輸出存儲單元中的字符,直到遇到第一個(gè)’\0’為止。輸出結(jié)束后不自動(dòng)換行。.4.4.5字符串處理函數(shù)C語言編譯系統(tǒng)提供了大量處理字符串的庫函數(shù),下面介紹幾種常用的函數(shù)。使用字符串輸入函數(shù)gets()和輸出函數(shù)puts()時(shí),要用#include命令將“stdio.h”頭文件包含到源文件中。而使用其他的字符串處理函數(shù)時(shí),要用#include命令將“string.h”頭文件包含到源文件中。1.字符串輸入函數(shù)gets()2.字符串輸出函數(shù)puts()5.字符串復(fù)制函數(shù)strcpy()6.字符串比較函數(shù)strcmp()3.字符串長度函數(shù)strlen()4.字符串連接函數(shù)strcat().如:charc[20];gets(c);執(zhí)行上面的語句,如果輸入:Howareyou!<CR>則將讀入的12個(gè)字符依次存入到c[0]開始的存儲單元中,并在其后自動(dòng)加入一個(gè)字符串結(jié)束標(biāo)志’\0’。4.4.5字符串處理函數(shù)(1)1.字符串輸入函數(shù)gets()調(diào)用gets()函數(shù)實(shí)現(xiàn)字符串的輸入,其調(diào)用形式為:

gets(字符數(shù)組);功能:從終端輸入一個(gè)字符串(包括空格)賦給從字符數(shù)組起始的存儲單元中,直到讀入一個(gè)回車符為止。回車符讀入后,不作為字符串的內(nèi)容,系統(tǒng)將自動(dòng)用’\0’替換,作為字符串結(jié)束的標(biāo)志。

.如:charc[]="How\nare\nyou!";puts(c);輸出結(jié)果:Howareyou!4.4.5字符串處理函數(shù)(2)2.字符串輸出函數(shù)puts()調(diào)用puts()函數(shù)實(shí)現(xiàn)字符串的輸出,其調(diào)用形式為:

puts(字符數(shù)組);功能:將字符數(shù)組起始地址開始的一個(gè)字符串(以’\0’結(jié)束的字符序列)輸出到終端,并將字符串結(jié)束標(biāo)志’\0’轉(zhuǎn)化成’\n’,自動(dòng)輸出一個(gè)換行符。

.如:charc[20]="How\nare\nyou!";printf("%d\n",strlen(c));輸出結(jié)果:124.4.5字符串處理函數(shù)(3)3.字符串長度函數(shù)strlen()調(diào)用strlen()函數(shù)實(shí)現(xiàn)字符串長度的測試,其調(diào)用形式為:

strlen(字符數(shù)組或字符串);功能:測試字符數(shù)組起始地址開始的字符串(以’\0’結(jié)束的字符序列)有效長度。函數(shù)值為字符數(shù)組或字符串的有效字符個(gè)數(shù),不包括’\0’在內(nèi)。.

如: charc1[30]="Howareyou!\n"; charc1[]="Iamfine!"; printf("%s",strcat(c1,c2));

輸出結(jié)果: Howareyou! Iamfine!4.4.5字符串處理函數(shù)(4)4.字符串連接函數(shù)strcat()調(diào)用strcat()函數(shù)實(shí)現(xiàn)兩個(gè)字符串的連接,其調(diào)用形式為:

strcat(字符數(shù)組1,字符數(shù)組2或字符串);功能:將字符數(shù)組2(字符串)連接到字符數(shù)組1的后面,函數(shù)值為字符數(shù)組1的地址。

使用strcat()函數(shù)應(yīng)注意兩個(gè)問題:(1)連接前字符數(shù)組1和字符數(shù)組2的尾部都有一個(gè)’\0’,連接時(shí)將字符數(shù)組1后的’\0’自動(dòng)取消,字符數(shù)組2后的’\0’一并連接到字符數(shù)組1后。(2)字符數(shù)組1必須有足夠長度,以便在其有效字符后能夠容納下字符數(shù)組2中的字符串。.如: charc1[30],c2="Howareyou!\n"; printf("%s",strcpy(c1,c2));

輸出結(jié)果:Howareyou!4.4.5字符串處理函數(shù)(5)5.字符串復(fù)制函數(shù)strcpy()調(diào)用strcpy()函數(shù)實(shí)現(xiàn)字符串的拷貝,其調(diào)用形式為:strcyp(字符數(shù)組1,字符數(shù)組2或字符串);功能:將字符數(shù)組2(字符串)復(fù)制到字符數(shù)組1中去。函數(shù)值為字符數(shù)組1的起始地址。

在使用strcpy()函數(shù)時(shí),需要注意下面問題:(1)字符數(shù)組1的長度容納字符數(shù)組2中的字符串。(2)將字符數(shù)組2中字符串的結(jié)束標(biāo)志’\0’一起復(fù)制到字符數(shù)組1中。(3)strcpy()函數(shù)能夠?qū)⒆址麛?shù)組2前面若干個(gè)字符復(fù)制到字符數(shù)組1中。如:strcpy(c1,c2,4);該語句的作用是將c2中前面的4字符復(fù)制到c1中去,然后系統(tǒng)自動(dòng)添入一個(gè)字符串結(jié)束標(biāo)志’\0’。

.

當(dāng)字符串中的對應(yīng)字符全部相等且同時(shí)遇到’\0’字符時(shí),則兩個(gè)字符串相等,否則,以第一個(gè)不相同的字符的比較結(jié)果作為整個(gè)字符串的比較結(jié)果,比較結(jié)果由函數(shù)值帶回,具體情況見下表所示。

4.4.5字符串處理函數(shù)(6)6.字符串比較函數(shù)strcmp()調(diào)用strcmp()函數(shù)實(shí)現(xiàn)字符串的大小比較,其調(diào)用形式為:

strcmp(字符數(shù)組1或字符串1,字符數(shù)組2或字符串2);功能:將兩個(gè)字符數(shù)組(字符串)自左向右對應(yīng)的字符逐個(gè)進(jìn)行比較(按ASCII碼值大小比較),直到出現(xiàn)不同字符或遇到’\0’字符為止,函數(shù)值為一個(gè)整型數(shù)。

字符串大小情況函數(shù)值VC++6.0函數(shù)值TC2.0函數(shù)值字符串1等于字符串200字符串1大于字符串21首不同字符的ASCII碼差值(正整數(shù))字符串1小于字符串2-1首不同字符的ASCII碼差值(負(fù)整數(shù)).2.程序?qū)嵗?【例4.6】3.程序?qū)嵗?【例4.7】1.程序?qū)嵗?【例4.5】4.5綜合實(shí)訓(xùn)4.程序?qū)嵗?【例4.8】.4.5綜合實(shí)訓(xùn)(2【例4.6】

)【例4.6】用冒泡法對10個(gè)整型數(shù)按升序進(jìn)行排序。冒泡法是使較小的值像空氣泡一樣逐漸“上浮”到數(shù)組的頂部,而較大的值逐漸下沉到數(shù)組的底部。具體思路是:從第一數(shù)開始將相鄰的兩個(gè)數(shù)比較,較大的數(shù)向后移動(dòng),較小的數(shù)向“上浮”一個(gè),經(jīng)過一輪的比較,最大的數(shù)移動(dòng)到末尾。對剩下的數(shù)繼續(xù)下一輪的比較和移動(dòng)。如果n個(gè)數(shù)比較,這樣n-1輪后,就完成了排序工作。程序名為l4_6.cpp,程序如下:.排序問題:將10個(gè)數(shù)按照由小到大的順序排列。基本思路:冒泡排序法#include<stdio.h>Main(){inta[10];intI,j,t;For(i=0;i<10;i++)scanf(“%d”,&a[i]);For(j=0;j<9;j++)for(i=0;i<9-j;i++){t=a[i];,a[i]=a[i+1];a[i+1]=t;}For(i=0;i<10;i++)printf(“%d”,a[i]);}.#include"stdio.h"main(){inti,j,t,a[10];printf("Pleaseinput10numbers:\n");for(i=0;i<10;i++) /*輸入10個(gè)整數(shù)存入數(shù)組a中*/ scanf("%d",&a[i]);for(i=0;i<9;i++) /*對數(shù)組a中的10個(gè)整數(shù)排序*/ for(j=0;j<9-i;j++) if(a[j]>a[j+1]) /*前面的元素大于后面的元素則交換*/ {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("Thesortednumbersare:"); for(i=0;i<10;i++) /*輸出數(shù)組a中的10個(gè)元素*/ printf("%d",a[i]); printf("\n");}4.5綜合實(shí)訓(xùn)(2【例4.6】程序).4.5綜合實(shí)訓(xùn)(2【例4.6】結(jié)果)

運(yùn)行時(shí)輸入:8967458732104523<CR>運(yùn)行結(jié)果:輸出排序結(jié)果輸入10個(gè)無序數(shù).練習(xí)題:1、輸出以下圖案:********************

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論