版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第8 8章章 函數(shù)的定義及調(diào)用函數(shù)的定義及調(diào)用一、一、概述概述二、二、函數(shù)的定義函數(shù)的定義三、函數(shù)的調(diào)用三、函數(shù)的調(diào)用什么是函數(shù)什么是函數(shù)?完成完成特定功能特定功能的的程序段程序段。C語言程序就是由語言程序就是由函數(shù)構(gòu)成函數(shù)構(gòu)成的。的。函數(shù)函數(shù)是是C語言程序的語言程序的基本單位基本單位。C語言是一種語言是一種函數(shù)式語言函數(shù)式語言。一、一、概述概述一個一個C程序由兩種函數(shù)構(gòu)成:程序由兩種函數(shù)構(gòu)成:標(biāo)準(zhǔn)函數(shù)(庫函數(shù))標(biāo)準(zhǔn)函數(shù)(庫函數(shù))系統(tǒng)提供的系統(tǒng)提供的,實(shí)現(xiàn)各種不同的功能。如,實(shí)現(xiàn)各種不同的功能。如printf, scanf, sqrt, fabs ,strlen,等等等等使用它們要包含相應(yīng)的
2、頭文件使用它們要包含相應(yīng)的頭文件自定義函數(shù):自定義函數(shù):用戶自己定義用戶自己定義的函數(shù)。的函數(shù)。用戶可以把一些具有獨(dú)立功能的代碼定義成用戶可以把一些具有獨(dú)立功能的代碼定義成函數(shù),有利于程序的模塊化和代碼的函數(shù),有利于程序的模塊化和代碼的“重用重用”函數(shù)的類型函數(shù)的類型 函數(shù)名稱(函數(shù)名稱( 形式參數(shù)列表形式參數(shù)列表 )二、二、 函數(shù)定義的一般形式函數(shù)定義的一般形式函數(shù)首部函數(shù)首部(函數(shù)頭函數(shù)頭)函數(shù)體函數(shù)體函數(shù)舉例函數(shù)舉例:int max ( int x , int y )int z;z = xy ? x : y ;return z;函數(shù)體函數(shù)體返回值類型返回值類型函數(shù)名函數(shù)名形式參數(shù)表形式參
3、數(shù)表1、函數(shù)的四大要素、函數(shù)的四大要素:int max ( int x , int y )int z;z = xy ? x : y ;return z;(1)(1)函數(shù)名函數(shù)名:u格式格式: 通常是一個標(biāo)識符通常是一個標(biāo)識符,要符合標(biāo)要符合標(biāo)識符的定義規(guī)則識符的定義規(guī)則u作用作用: 唯一的標(biāo)識一個函數(shù)唯一的標(biāo)識一個函數(shù) u說明說明:要選擇一個簡潔的有意義要選擇一個簡潔的有意義的名字作為函數(shù)名。的名字作為函數(shù)名。從函數(shù)名可以反映出函數(shù)從函數(shù)名可以反映出函數(shù)的功能。的功能。(2)(2)形式參數(shù)表(簡稱形參):形式參數(shù)表(簡稱形參):u 格式格式: :( (類型名類型名 變量名變量名, ,類型名類型
4、名 變量名變量名) )u作用作用: : 指明要實(shí)現(xiàn)指定的功能所操作的指明要實(shí)現(xiàn)指定的功能所操作的數(shù)據(jù),實(shí)現(xiàn)功能已知的數(shù)據(jù)數(shù)據(jù),實(shí)現(xiàn)功能已知的數(shù)據(jù) 例:例:已知已知兩個整數(shù)兩個整數(shù)x,yx,y,要求求要求求出出其中的最大值其中的最大值u 說明說明: :一個函數(shù)也可以沒有形參一個函數(shù)也可以沒有形參, ,但括號但括號必須有必須有, ,稱為稱為無參函數(shù)無參函數(shù)int max ( int x , int y )int z;z = xy ? x : y ;return z;void printstar ( ) printf(“*n”);(3)(3)函數(shù)類型函數(shù)類型( (返回值類型返回值類型) ):u作用作
5、用: :指明函數(shù)的類型,指明函數(shù)的類型,函數(shù)實(shí)現(xiàn)功函數(shù)實(shí)現(xiàn)功能后得到的能后得到的結(jié)果值的類型結(jié)果值的類型。其中函數(shù)實(shí)現(xiàn)功能后得到的結(jié)其中函數(shù)實(shí)現(xiàn)功能后得到的結(jié)果稱為果稱為函數(shù)返回值函數(shù)返回值。例:例:已知已知兩個整數(shù)兩個整數(shù)x,y,要求求出要求求出其中的最大值其中的最大值u說明說明: :可省略可省略, ,則默認(rèn)為則默認(rèn)為intint型。型。可用可用voidvoid, ,表示函數(shù)無返回值表示函數(shù)無返回值int max ( int x , int y )int z;z = xy ? x : y ;return z;void printstar ( ) printf(“*n”);(4)(4)函數(shù)體:
6、函數(shù)體:u作用作用: : 實(shí)現(xiàn)某種功能、完成某種任務(wù)。實(shí)現(xiàn)某種功能、完成某種任務(wù)。通常是對形參的操作通常是對形參的操作u格式格式: : 用用括起來的內(nèi)容,由括起來的內(nèi)容,由數(shù)據(jù)說數(shù)據(jù)說明部分明部分和和可執(zhí)行語句可執(zhí)行語句組成組成u說明說明: : 函數(shù)體內(nèi)可以無任何語句,稱函數(shù)體內(nèi)可以無任何語句,稱為為空函數(shù)空函數(shù), ,作為接口使用作為接口使用. .int max ( int x , int y )int z;z = xy ? x : y ;return z;void dummy( ) 2、函數(shù)的返回值:、函數(shù)的返回值:return語句的使用語句的使用當(dāng)函數(shù)在完成一定的功能后,應(yīng)該將處理的結(jié)果返
7、當(dāng)函數(shù)在完成一定的功能后,應(yīng)該將處理的結(jié)果返回給該函數(shù)的使用者。回給該函數(shù)的使用者。u格式格式: return(表達(dá)式表達(dá)式); 或或 return 表達(dá)式表達(dá)式; 或或 return;u作用作用:(1)將表達(dá)式的值返回給調(diào)用函數(shù)將表達(dá)式的值返回給調(diào)用函數(shù) (2)把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回,即把控制權(quán)轉(zhuǎn)向調(diào)用函數(shù)實(shí)現(xiàn)函數(shù)的返回,即結(jié)束結(jié)束被調(diào)用函數(shù)的執(zhí)行被調(diào)用函數(shù)的執(zhí)行,并將控制返回到調(diào)用它的函數(shù)。,并將控制返回到調(diào)用它的函數(shù)。3 3、函數(shù)定義舉例:、函數(shù)定義舉例:分析:分析: 已知一個華氏溫度,要求出一已知一個華氏溫度,要求出一個攝氏溫度個攝氏溫度 確定函數(shù)名:確定函數(shù)名:ftoc
8、確定形參:確定形參:已知一個華氏溫度,設(shè)形參已知一個華氏溫度,設(shè)形參temp代表代表f,類型為,類型為float。 確定函數(shù)類型:確定函數(shù)類型:函數(shù)的返回值即為函數(shù)的返回值即為 c 的值,的值,類型為類型為float。float ftoc( float temp ) float c ; c =(5.0/9)*( temp 32 ); return c ;)32(95fc 例例1:編寫自定義函數(shù)計(jì)算:編寫自定義函數(shù)計(jì)算:分析:分析:確定函數(shù)名:確定函數(shù)名:jiecheng確定形參:確定形參: 求求 n!必須知道必須知道 n 的大小的大小, 設(shè)形參為設(shè)形參為 n,類型為,類型為int確定函數(shù)類型:
9、確定函數(shù)類型: 函數(shù)的返回值即為函數(shù)的返回值即為n!的值的值, 類型為類型為double程序:程序: double jiecheng( int n ) int i; double mul=1; for( i=1;i=n;i+) mul *= i ; return mul ; 例例2 編寫一個自定義函數(shù)求編寫一個自定義函數(shù)求 n!例例3 編寫函數(shù)編寫函數(shù),功能在屏幕上輸出功能在屏幕上輸出5*5個個“*”組成的方形。組成的方形。分析:分析:確定函數(shù)名:確定函數(shù)名:square確定形參:確定形參: 不需要形參不需要形參確定函數(shù)類型:確定函數(shù)類型: 沒有返回值,類型為沒有返回值,類型為void程序:程
10、序: void square() int i,j; for(i=1;i6;i+) for(j=1;jy ? x : y ;return z;x x,y y的值是多少呢?的值是多少呢?由該函數(shù)的使用者提供由該函數(shù)的使用者提供1、調(diào)用一般形式、調(diào)用一般形式 函數(shù)名函數(shù)名(實(shí)參表實(shí)參表);2、調(diào)用方式、調(diào)用方式 函數(shù)語句:函數(shù)語句: 例例 square(); 函數(shù)表達(dá)式:函數(shù)表達(dá)式: 例例 m = jiecheng(4)*2; 函數(shù)參數(shù):函數(shù)參數(shù): 例例 int n=6;printf(“%f”,jiecheng(n);三、三、函數(shù)的調(diào)用函數(shù)的調(diào)用函數(shù)調(diào)用函數(shù)調(diào)用 例例1:#include int m
11、ax (int x,int y)/*被調(diào)函數(shù)被調(diào)函數(shù)*/ int n; n=xy?x:y; return n;x,y 是形參是形參a,b是實(shí)參是實(shí)參函數(shù)調(diào)用函數(shù)調(diào)用void main()/*主調(diào)函數(shù)主調(diào)函數(shù)*/ int a,b,c; scanf(“%d%d”,&a,&b); c = max (a,b) ; printf(“max=%dn”,c);說明:說明:u 在這個程序里有兩個函數(shù)在這個程序里有兩個函數(shù)max和和main,它們的定義是它們的定義是平平行的、相互獨(dú)立行的、相互獨(dú)立的。的。u main是主函數(shù)是主函數(shù),無論無論main函數(shù)放在什么位置,程序的運(yùn)函數(shù)放在什么位置,程
12、序的運(yùn)行都從行都從main開始,從開始,從main結(jié)束。結(jié)束。u main又是主調(diào)函數(shù)(調(diào)用函數(shù)),它調(diào)用了又是主調(diào)函數(shù)(調(diào)用函數(shù)),它調(diào)用了max函數(shù),函數(shù),從而使從而使max函數(shù)得到運(yùn)行。函數(shù)得到運(yùn)行。u max是被調(diào)用函數(shù)是被調(diào)用函數(shù)。main( )調(diào)用函數(shù)調(diào)用函數(shù)maxReturn或或max函數(shù)函數(shù)結(jié)束結(jié)束已知求已知求n!的函數(shù):的函數(shù): float jiecheng(int n) int i; double mul=1; for( i=1;i=n;i+) mul *= i ; return mul ; 編寫程序,求出編寫程序,求出6!、15!、!、28!#include void m
13、ain() printf(“6!=%.0fn”,jiecheng(6); printf(“15!=%.0fn”,jiecheng(15); printf(“28!=%.0fn”,jiecheng(28);函數(shù)調(diào)用例函數(shù)調(diào)用例2:代碼復(fù)用代碼復(fù)用float area2(float d) float s; s=3.14159*(d/2)*(d/2)/2; return(s);例例 3求右圖圖形的面積求右圖圖形的面積 。#include float area1(float a,float b,float c) float s,p; p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*
14、(p-c); return(s);void main( ) float a,b,c,s; scanf (%f%f%f,&a,&b,&c); s=area1(a,b,c)+area2(a)+area2(b)+area2(c); printf (%fn,s);3 3、 形參與實(shí)參形參與實(shí)參形參(形式參數(shù))形參(形式參數(shù))是是函數(shù)定義函數(shù)定義時,參數(shù)表中的參數(shù)。時,參數(shù)表中的參數(shù)。形式參數(shù)只能是變量。形式參數(shù)只能是變量。例如:例如:float max( float x, float y ) float ftoc ( float temp) 在函數(shù)定義時,參數(shù)表中的形參在函數(shù)定
15、義時,參數(shù)表中的形參并沒有具體的值并沒有具體的值,系統(tǒng)也系統(tǒng)也不為其分配存儲單元不為其分配存儲單元。在被調(diào)用執(zhí)行時,系統(tǒng)在被調(diào)用執(zhí)行時,系統(tǒng)為其分配臨時存儲單元為其分配臨時存儲單元。 實(shí)參(實(shí)際參數(shù))實(shí)參(實(shí)際參數(shù))是是函數(shù)調(diào)用函數(shù)調(diào)用時主調(diào)函數(shù)傳時主調(diào)函數(shù)傳送給被調(diào)用函數(shù)形參的實(shí)際值。送給被調(diào)用函數(shù)形參的實(shí)際值。 實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須實(shí)參可以是常量、變量和表達(dá)式,實(shí)參必須有確定的值。有確定的值。 例如:例如: fabs( -2 ); putchar( c ); sqrt( (x*x+2)*(y+z) );max(10,20);max(a,b);函數(shù)調(diào)用函數(shù)調(diào)用 例例1:#i
16、nclude int max (int x,int y)/*被調(diào)函數(shù)被調(diào)函數(shù)*/ int n; n=xy?x:y; return n;x,y 是形參是形參a,b是實(shí)參是實(shí)參函數(shù)調(diào)用函數(shù)調(diào)用void main()/*主調(diào)函數(shù)主調(diào)函數(shù)*/ int a,b,c; scanf(“%d%d”,&a,&b); c = max (a,b) ; printf(“max=%dn”,c);4 4、函數(shù)調(diào)用的過程、函數(shù)調(diào)用的過程#include int max (int x,int y) int n; n=xy?x:y; return n;void main() int a,b,c; scanf(“
17、%d%d”,&a,&b); c = max (a,b) ; printf(“max=%dn”,c);abxyn34344main函數(shù)函數(shù)max函數(shù)函數(shù) 函數(shù)返回后,形參的空間被釋放函數(shù)返回后,形參的空間被釋放函數(shù)調(diào)用分函數(shù)調(diào)用分3步:步:l參數(shù)傳遞參數(shù)傳遞:vc中由右到左中由右到左l執(zhí)行執(zhí)行被調(diào)用函數(shù)的被調(diào)用函數(shù)的函數(shù)體函數(shù)體l返回返回到主調(diào)函數(shù)到主調(diào)函數(shù)調(diào)用點(diǎn)調(diào)用點(diǎn),繼續(xù)執(zhí)行下一條,繼續(xù)執(zhí)行下一條語句語句main( )調(diào)用函數(shù)調(diào)用函數(shù)maxreturn或或max函數(shù)函數(shù)結(jié)束結(jié)束關(guān)于形、實(shí)參的說明關(guān)于形、實(shí)參的說明 1) 實(shí)、形參個數(shù)相同,類型應(yīng)一致(相同或?qū)崱⑿螀€數(shù)相同,類
18、型應(yīng)一致(相同或賦值兼容)。賦值兼容)。例:例:int n;n=max(4,20);n=max(3.5,7.3); 轉(zhuǎn)化為:轉(zhuǎn)化為:n=max(3,7);2) 2) 實(shí)、形參的數(shù)值傳遞為實(shí)、形參的數(shù)值傳遞為單向、值單向、值傳遞。傳遞。實(shí)參實(shí)參與與形參形參是是不同的單元,不同的單元,形參的變化不影響實(shí)參形參的變化不影響實(shí)參。例:例:void swap(int x,int y) int t; t=x; x=y; y=t; printf(“x=%d,y=%dn”,x,y);void main()int a=3,b=4;swap(a,b);printf(“a=%d,b=%dn”,a,b);運(yùn)行結(jié)果是:
19、運(yùn)行結(jié)果是: x=4,y=3 x=4,y=3 a=3,b=4 a=3,b=4abxyt3434343int sushu( int n ) int i; for(i=2;i?:); 在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該和在定義函數(shù)時指定的函數(shù)類型一般應(yīng)該和return語句中的表達(dá)式類型一致。語句中的表達(dá)式類型一致。 如果函數(shù)值的類型和如果函數(shù)值的類型和return語句中表達(dá)式的值不語句中表達(dá)式的值不一致,則以函數(shù)類型為準(zhǔn)。一致,則以函數(shù)類型為準(zhǔn)。對數(shù)值型數(shù)據(jù),可以自動進(jìn)行類型轉(zhuǎn)換。即函數(shù)對數(shù)值型數(shù)據(jù),可以自動進(jìn)行類型轉(zhuǎn)換。即函數(shù)類型決定返回值的類型。類型決定返回值的類型。例例 8.8. 返回值類型
20、與函數(shù)類型不同返回值類型與函數(shù)類型不同# include void main() int max(float ,float ); float a,b; int c; scanf(%f,%f,&a,&b); c=max(a,b); printf ( max is %dn“,c); int max(float x,float y) float z; /* z為實(shí)型變量 */ z=xy?x:y; return(z);運(yùn)行情況如下:1.5,2.5Max is 6 6、函數(shù)聲明、函數(shù)聲明( (函數(shù)原型函數(shù)原型) )(1) 一個函數(shù)調(diào)用另一個函數(shù)需具備以下條件:一個函數(shù)調(diào)用另一個函數(shù)需具備
21、以下條件:u被調(diào)用函數(shù)已經(jīng)存在。被調(diào)用函數(shù)已經(jīng)存在。u使用庫函數(shù)時,文件開頭應(yīng)加相應(yīng)的頭文件。使用庫函數(shù)時,文件開頭應(yīng)加相應(yīng)的頭文件。 #include u對于自定義函數(shù),當(dāng)對于自定義函數(shù),當(dāng)被調(diào)用函數(shù)的定義在主調(diào)函被調(diào)用函數(shù)的定義在主調(diào)函數(shù)的后面數(shù)的后面時,在主調(diào)函數(shù)中應(yīng)對被調(diào)函數(shù)加以時,在主調(diào)函數(shù)中應(yīng)對被調(diào)函數(shù)加以聲明聲明。#include void main() float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);float add(float x, float y) float z; z=x+
22、y; return(z);編譯出編譯出錯錯(2) 函數(shù)聲明函數(shù)聲明u作用:作用: 告訴編譯系統(tǒng)告訴編譯系統(tǒng)函數(shù)類型、參數(shù)個數(shù)及類型,以便檢函數(shù)類型、參數(shù)個數(shù)及類型,以便檢查查u形式:形式: 函數(shù)類型函數(shù)類型 函數(shù)名(類型函數(shù)名(類型1 形參形參1, 類型類型2 形參形參 2, . );); 函數(shù)類型函數(shù)類型 函數(shù)名(類型函數(shù)名(類型1,類型,類型2,.);); 函數(shù)類型函數(shù)類型 函數(shù)名();函數(shù)名(); 傳統(tǒng)方法傳統(tǒng)方法u函數(shù)聲明位置:函數(shù)聲明位置: 主調(diào)函數(shù)主調(diào)函數(shù)內(nèi)部開頭內(nèi)部開頭 或或整個文件的開頭整個文件的開頭(所有函數(shù)之前)(所有函數(shù)之前) #include void main() f
23、loat a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);float add(float x, float y) float z; z=x+y; return(z);float add(float x,float y);float add(float,float); 編譯編譯通過通過在主調(diào)函數(shù)在主調(diào)函數(shù)內(nèi)部進(jìn)行函內(nèi)部進(jìn)行函數(shù)聲明數(shù)聲明#include void main() float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %
24、f,c);float add(float x, float y) float z; z=x+y; return(z);float add(float x,float y); float add(float,float); 在所有函在所有函數(shù)之前進(jìn)數(shù)之前進(jìn)行函數(shù)聲行函數(shù)聲明明#include float add(float x, float y) float z; z=x+y; return(z);void main() float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);8.7 數(shù)組作為函數(shù)參數(shù)數(shù)組作
25、為函數(shù)參數(shù)一、一、數(shù)組元素?cái)?shù)組元素作函數(shù)實(shí)參作函數(shù)實(shí)參 用法與變量作實(shí)參一樣,是單向值傳遞。用法與變量作實(shí)參一樣,是單向值傳遞。int max (int x,int y) int n; n=xy?x:y; return n;void main() int a2=1,2; int c; c = max (a0, a1) ; printf(“max=%dn”,c);例例8.11 寫一個函數(shù)寫一個函數(shù),求求10個學(xué)生的平均成績個學(xué)生的平均成績 #include float average(int stu10); void main() int score10, i; float av; printf
26、(Input 10 scores:n); for( i=0; i10; i+ ) scanf(%d, &scorei); av=average(score); printf(Average is:%.2f, av); float average(int stu10) int i; float av,total=0; for( i=0; i10; i+ ) total += stui; av = total/10; return av;實(shí)參用數(shù)組名實(shí)參用數(shù)組名形參用數(shù)組定義形參用數(shù)組定義,二、數(shù)組名二、數(shù)組名作函數(shù)參數(shù)作函數(shù)參數(shù)說明:說明:在主調(diào)函數(shù)與被調(diào)函數(shù)分別定義數(shù)組在主調(diào)函數(shù)與被調(diào)
27、函數(shù)分別定義數(shù)組,且類型應(yīng)一致且類型應(yīng)一致形參數(shù)組大小可不指定:形參數(shù)組大小可不指定:C編譯系統(tǒng)不檢查形參數(shù)組的大小編譯系統(tǒng)不檢查形參數(shù)組的大小 #include float average(int stu, int n); void main() int score10, i; float av; printf(Input 10 scores:n); for( i=0; i10; i+ ) scanf(%d, &scorei); av=average(score,10); printf(Average is:%.2f, av); float average(int stu ,int
28、n) int i; float av,total=0; for( i=0; in; i+ ) total += stui; av = total/n; return av; 數(shù)組名做參數(shù),數(shù)組名做參數(shù),參數(shù)傳遞的是地址:參數(shù)傳遞的是地址: 形參數(shù)組名只是獲得了實(shí)參數(shù)組的形參數(shù)組名只是獲得了實(shí)參數(shù)組的首地址首地址.2109score562312.88 stu實(shí)參實(shí)參形參形參形、實(shí)參共用一段內(nèi)存單元。形、實(shí)參共用一段內(nèi)存單元。 (即:形參變化影響實(shí)參)(即:形參變化影響實(shí)參)void swap(int b2) int t; t=b0; b0=b1; b1=t;main() int a2=3,4;
29、swap(a); printf(a0=%d,a0); printf(a1=%d,a1); at343例:數(shù)組名做實(shí)參,雙向傳遞例:數(shù)組名做實(shí)參,雙向傳遞運(yùn)行結(jié)果:運(yùn)行結(jié)果:a0=4,a1=3void swap(int x , int y) int t; t=x; x=y; y=t;main() int a2=3,4; swap(a0,a1); printf(“a0=%d,a0); printf(a1=%d,a1); axyt3434343例:數(shù)組元素做實(shí)參,單向值傳遞例:數(shù)組元素做實(shí)參,單向值傳遞運(yùn)行結(jié)果:運(yùn)行結(jié)果:a0=3,a1=4例例:寫一個函數(shù)寫一個函數(shù),功能是求出一個一維整型數(shù)組中的最
30、小值。在主函功能是求出一個一維整型數(shù)組中的最小值。在主函數(shù)中定義一個數(shù)中定義一個10個整數(shù)組成的數(shù)組,通過函數(shù)調(diào)用求出其中的最個整數(shù)組成的數(shù)組,通過函數(shù)調(diào)用求出其中的最小值并輸出。小值并輸出。int min ( int arr ,int n ) int i,m; m=arr0; for(i=1;in;i+)if(arrim) m=arri; return m;#include int min(int arr ,int n);void main() int a10,i,m; printf(“input 10 integers:”); for(i=0;i10;i+)scanf(“%d”,&
31、ai); m=min( a,10 ); printf(“min=%dn”,m); 例例8.13:編寫一個函數(shù):編寫一個函數(shù):利用利用選擇法選擇法對對10個整數(shù)由小個整數(shù)由小到大排序。到大排序。算法介紹:算法介紹:(1)把把10個數(shù)存入個數(shù)存入a0a9中。中。(2)在在a0a9中找出最小數(shù),將最小數(shù)與中找出最小數(shù),將最小數(shù)與a0對調(diào)。對調(diào)。(3)在在a1a9中找出最小數(shù),將最小數(shù)與中找出最小數(shù),將最小數(shù)與a1對調(diào)。對調(diào)。(4)依次類推依次類推 (5)在在a8a9中找出最小數(shù),將最小數(shù)與中找出最小數(shù),將最小數(shù)與a8對調(diào)。對調(diào)。綜上所述,綜上所述,10個數(shù)共進(jìn)行個數(shù)共進(jìn)行10-1=9輪選擇,每輪選出一輪選擇,每輪選出一個最小的數(shù),并且選擇區(qū)間不斷的縮小。個最小的數(shù),并且選擇區(qū)間不斷的縮小。第第0趟選擇:趟選擇:K當(dāng)前最小數(shù)下標(biāo)當(dāng)前最小數(shù)下標(biāo)數(shù)組元素下標(biāo)數(shù)組元素下標(biāo)void sort ( int arr ,int n ) int i,j,k,t; for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(arrjarrk) k=j; t = arr k; arrk = arr i; arri = t; #include void
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教輔資料與課件
- 數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ)要點(diǎn)解析
- 越南房產(chǎn)制度
- 試塊養(yǎng)護(hù)制度
- 2025年空港醫(yī)院筆試題庫答案
- 2025年百色事業(yè)單位招聘考試及答案
- 2025年村支書省考筆試題目及答案
- 2025年沁水縣事業(yè)單位考試答案
- 2025年少先隊(duì)輔導(dǎo)員說課筆試及答案
- 2025年北京備案制事業(yè)單位考試及答案
- 2026內(nèi)蒙古鄂爾多斯市伊金霍洛旗九泰熱力有限責(zé)任公司招聘熱電分公司專業(yè)技術(shù)人員16人備考考試試題及答案解析
- 2026中國電建招聘面試題及答案
- GB/T 36132-2025綠色工廠評價通則
- 2025年溫州肯恩三位一體筆試英語真題及答案
- 人教版五年級上冊數(shù)學(xué)第七單元《植樹問題》應(yīng)用題期末專項(xiàng)訓(xùn)練(含答案)
- 機(jī)關(guān)人員公務(wù)出差審批單
- 報(bào)紙刊登通告合同范本
- 2025年信用報(bào)告征信報(bào)告詳版?zhèn)€人版模板樣板(可編輯)
- 2025年五上課外閱讀題庫及答案
- 湖南鐵道職業(yè)技術(shù)學(xué)院2025年單招職業(yè)技能測試題
- 果農(nóng)水果出售合同范本
評論
0/150
提交評論