版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第五章第五章 函函 數(shù)數(shù)3教學目標l(1) 了解函數(shù)在程序設計中的作用;了解函數(shù)在程序設計中的作用;l(2) 掌握函數(shù)的定義方法;掌握函數(shù)的定義方法;l(3) 掌握函數(shù)調(diào)用和參數(shù)傳遞的機制和方法;掌握函數(shù)調(diào)用和參數(shù)傳遞的機制和方法;l(4) 了解變量的作用域和生存期的概念。了解變量的作用域和生存期的概念。4基本內(nèi)容 l5.1概述概述l5.2 函數(shù)的定義和調(diào)用函數(shù)的定義和調(diào)用l5.3 函數(shù)間參數(shù)傳遞函數(shù)間參數(shù)傳遞55.1 概述l函數(shù)是構成程序的基本模塊,每個函數(shù)完成一個計函數(shù)是構成程序的基本模塊,每個函數(shù)完成一個計算或執(zhí)行一個特定動作,具有相對獨立的功能。算或執(zhí)行一個特定動作,具有相對獨立的功能
2、。l通過函數(shù),可以把一個復雜任務分解成為若干個易通過函數(shù),可以把一個復雜任務分解成為若干個易于解決的小任務。充分體現(xiàn)結構化程序設計由粗到于解決的小任務。充分體現(xiàn)結構化程序設計由粗到精,逐步細化的設計思想。精,逐步細化的設計思想。lC/C+提供三種類型的函數(shù):提供三種類型的函數(shù):l主函數(shù)主函數(shù)main( )l標準庫函數(shù)標準庫函數(shù)l用戶自定義函數(shù)用戶自定義函數(shù)6 函數(shù)調(diào)用層次關系lmain()函數(shù)是程序執(zhí)行的入口,它可以調(diào)用其他函數(shù)。函數(shù)是程序執(zhí)行的入口,它可以調(diào)用其他函數(shù)。而其他一般函數(shù)既可以調(diào)用也可以被調(diào)用。而其他一般函數(shù)既可以調(diào)用也可以被調(diào)用。main ( )fun2( )fun1( )fu
3、n3( )fun1_1( )fun2_1( )fun2_2( )75.2 函數(shù)的定義和調(diào)用l5.2.1 函數(shù)的定義函數(shù)的定義l5.2.2 函數(shù)的調(diào)用函數(shù)的調(diào)用l5.2.3 函數(shù)聲明函數(shù)聲明85.2.1 函數(shù)的定義l函數(shù)必須先定義,后使用。函數(shù)必須先定義,后使用。l定義函數(shù)的一般格式為:定義函數(shù)的一般格式為:函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名(形式參數(shù)表形式參數(shù)表) 說明語句;說明語句;執(zhí)行語句;執(zhí)行語句; return 表達式;表達式;函數(shù)體9函數(shù)類型l函數(shù)類型:即調(diào)用該函數(shù)后所得到的函數(shù)值的類型,函數(shù)類型:即調(diào)用該函數(shù)后所得到的函數(shù)值的類型,它由函數(shù)體內(nèi)部的它由函數(shù)體內(nèi)部的return語句提供。
4、語句提供。lreturn 表達式;表達式; lreturn語句提供的表達式的值類型必須與函數(shù)類型一致。語句提供的表達式的值類型必須與函數(shù)類型一致。l如果某一函數(shù)確沒有返回值,則使用說明符如果某一函數(shù)確沒有返回值,則使用說明符void。l例如:主函數(shù)的另一種形式例如:主函數(shù)的另一種形式void main() 注意:注意:這時函數(shù)中不能出現(xiàn)有返回值的這時函數(shù)中不能出現(xiàn)有返回值的return語句。語句。10參數(shù)說明l形式參數(shù)表形式參數(shù)表 (形參(形參 )表示將從調(diào)用函數(shù)中接收哪)表示將從調(diào)用函數(shù)中接收哪些類型的數(shù)據(jù)些類型的數(shù)據(jù)l參數(shù)說明格式為:參數(shù)說明格式為:變量類型變量類型 形參形參1,變量類型,
5、變量類型 形參形參2,變量類型,變量類型 形參形參nl例:例:int array, int count, doulbe distance11函數(shù)體l函數(shù)體本身是一個分程序,由語句和其他分程函數(shù)體本身是一個分程序,由語句和其他分程序組成。序組成。l語句分為說明語句和執(zhí)行語句兩類。語句分為說明語句和執(zhí)行語句兩類。l對某具體變量來說,應先說明,后使用。對某具體變量來說,應先說明,后使用。125.2.2 函數(shù)的調(diào)用l函數(shù)要先定義,后調(diào)用。函數(shù)要先定義,后調(diào)用。l調(diào)用函數(shù)時要考慮到函數(shù)本身的參數(shù)調(diào)用函數(shù)時要考慮到函數(shù)本身的參數(shù):l調(diào)用標準庫函數(shù)時,要包含相應的頭文件調(diào)用標準庫函數(shù)時,要包含相應的頭文件l
6、輸入輸入/輸出函數(shù)輸出函數(shù) iostreaml字符串函數(shù)字符串函數(shù) cstringl常用數(shù)學函數(shù)常用數(shù)學函數(shù) cmathl調(diào)用自定義函數(shù)時,要定義相應的實參,并給這些實參調(diào)用自定義函數(shù)時,要定義相應的實參,并給這些實參賦值。賦值。l 函數(shù)名函數(shù)名 ( 實參列表實參列表 )l實參與形參必須一一對應實參與形參必須一一對應: “虛實結合虛實結合” “類型一致、位置一致、個數(shù)一致類型一致、位置一致、個數(shù)一致”13例5-1 求階乘n!l算法分析:算法分析:l計算公式為:計算公式為: n!= n(n-1)321, 且且0!=1l此函數(shù)只需傳入一個表示整數(shù)運算對象的數(shù)據(jù),故設一此函數(shù)只需傳入一個表示整數(shù)運算
7、對象的數(shù)據(jù),故設一個形式參數(shù)個形式參數(shù)nl函數(shù)的計算結果要返回主調(diào)函數(shù),故設一個變量函數(shù)的計算結果要返回主調(diào)函數(shù),故設一個變量resultln的階乘結果可由一重循環(huán)來求得的階乘結果可由一重循環(huán)來求得main( )函數(shù)函數(shù)調(diào)用調(diào)用fac(3)函數(shù)函數(shù)fac(3)return 6 主程序后主程序后續(xù)語句續(xù)語句#include using namespace std;int fac(int n)int result = 1;if(n = 0)return 1;while (n1)result = result * n;n-;return result;int main()int m, r;cout
8、m;r = fac(m) ;cout m ! = r endl;return 0;15函數(shù)間的信息交換l調(diào)用函數(shù)和被調(diào)用函數(shù)之間的信息交換是通過調(diào)用函數(shù)和被調(diào)用函數(shù)之間的信息交換是通過參數(shù)的結合和參數(shù)的結合和return語句來實現(xiàn)的。語句來實現(xiàn)的。l數(shù)據(jù)流程是:數(shù)據(jù)流程是:l在調(diào)用函數(shù)中,先給實參賦值在調(diào)用函數(shù)中,先給實參賦值l通過函數(shù)調(diào)用,將數(shù)據(jù)從調(diào)用函數(shù)帶到被調(diào)用函數(shù)通過函數(shù)調(diào)用,將數(shù)據(jù)從調(diào)用函數(shù)帶到被調(diào)用函數(shù)l形參帶值后,被調(diào)用函數(shù)即可進行相應的數(shù)據(jù)處理形參帶值后,被調(diào)用函數(shù)即可進行相應的數(shù)據(jù)處理l如果有返回值,通過如果有返回值,通過return語句帶回到調(diào)用函數(shù)語句帶回到調(diào)用函數(shù)165
9、.2.3 函數(shù)聲明l函數(shù)(原型)聲明函數(shù)(原型)聲明l將某函數(shù)的定義放在調(diào)用它的函數(shù)之后時,必須在被將某函數(shù)的定義放在調(diào)用它的函數(shù)之后時,必須在被調(diào)用到之前對該函數(shù)先做說明調(diào)用到之前對該函數(shù)先做說明l函數(shù)聲明的一般格式為:函數(shù)聲明的一般格式為:函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名 ( 形式參數(shù)表形式參數(shù)表 );17例 5-2:函數(shù)聲明的使用絕對值函數(shù) #include using namespace std;int abs(int x);/ 函數(shù)聲明函數(shù)聲明int main()/ 主函數(shù)主函數(shù)int m = -5;cout |m| = abs(m) =0?x:-x;/ 使用問號表達式直接計算并返回結
10、果使用問號表達式直接計算并返回結果運行結果:運行結果:|m| = 5185.3 函數(shù)間的參數(shù)傳遞l形參:在參數(shù)表中聲明的參數(shù)(變量)叫做函形參:在參數(shù)表中聲明的參數(shù)(變量)叫做函數(shù)的形式參數(shù)。數(shù)的形式參數(shù)。 l實參:在調(diào)用函數(shù)時,一般須為每一個形參給實參:在調(diào)用函數(shù)時,一般須為每一個形參給出其實際數(shù)據(jù),即實際參數(shù)。出其實際數(shù)據(jù),即實際參數(shù)。 l實參與形參有實參與形參有3 3種結合方式:種結合方式:值調(diào)用、引用調(diào)用和地址調(diào)用。值調(diào)用、引用調(diào)用和地址調(diào)用。19值調(diào)用l值調(diào)用值調(diào)用l在調(diào)用時僅將實參的值賦給形參在調(diào)用時僅將實參的值賦給形參l在函數(shù)中對形參的任何修改不會影響到實參的值。在函數(shù)中對形參的
11、任何修改不會影響到實參的值。l優(yōu)點:優(yōu)點:l減少了調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)依賴,增減少了調(diào)用函數(shù)與被調(diào)用函數(shù)之間的數(shù)據(jù)依賴,增強了函數(shù)自身的獨立性。強了函數(shù)自身的獨立性。l缺點:缺點:l被調(diào)用函數(shù)向調(diào)用函數(shù)傳遞的數(shù)據(jù)僅有一個返回值,被調(diào)用函數(shù)向調(diào)用函數(shù)傳遞的數(shù)據(jù)僅有一個返回值,有時顯得不夠用。有時顯得不夠用。/例例 5-3:交換兩個變量的值:交換兩個變量的值(值調(diào)用值調(diào)用)#include using namespace std; void swap(int x, int y)int tmp;tmp = x;x = y;y = tmp;/ 測試函數(shù)測試函數(shù) swap() 用的主函數(shù)用的主
12、函數(shù)int main( ) int a = 1, b = 2;cout Before exchange:a= a ,b= b endl;swap(a, b);cout After exchange:a= a ,b= b endl;return 0;運行結果:運行結果:(不成功不成功)Before exchange:a=1,b=2After exchange:a=1,b=2215.4 變量的作用域和生存期l5.4.1 變量的作用域變量的作用域l5.4.2 變量的生存期變量的生存期225.4.1 變量的作用域l根據(jù)作用域的不同,可將程序中的變量分為根據(jù)作用域的不同,可將程序中的變量分為局局部變量部
13、變量和和全局變量全局變量l局部變量是在函數(shù)或分程序中說明的變量,只能在局部變量是在函數(shù)或分程序中說明的變量,只能在本函數(shù)或分程序的范圍內(nèi)使用。本函數(shù)或分程序的范圍內(nèi)使用。l全局變量說明于所有函數(shù)之外,可以為本源程序文全局變量說明于所有函數(shù)之外,可以為本源程序文件中位于該全局變量說明之后的所有函數(shù)共同使用。件中位于該全局變量說明之后的所有函數(shù)共同使用。l全局變量可以在各個函數(shù)之間建立數(shù)據(jù)傳輸通道,全局變量可以在各個函數(shù)之間建立數(shù)據(jù)傳輸通道,但濫用會破壞程序的模塊化結構。但濫用會破壞程序的模塊化結構。l如出現(xiàn)同名變量,遵循如出現(xiàn)同名變量,遵循“地方保護主義地方保護主義”原則。原則。#include
14、 using namespace std;int x;/ 聲明全局變量聲明全局變量int f1() / 在函數(shù)在函數(shù)f1()使用全局變量使用全局變量xreturn (x+5)*(x+5);int f2(int y)int x =y+5;/ 函數(shù)函數(shù)f2()中聲明了一個名為中聲明了一個名為x的局部變量的局部變量return x*x;int main()x = 3;/ 在主函數(shù)中為全局變量在主函數(shù)中為全局變量x賦值賦值cout調(diào)用函數(shù)調(diào)用函數(shù)f1()的結果:的結果:f1()endl;cout調(diào)用函數(shù)調(diào)用函數(shù)f2()的結果:的結果:f2(2)endl;coutx = xendl;return 0;運
15、行結果:運行結果:調(diào)用函數(shù)調(diào)用函數(shù)f1()的結果:的結果:64調(diào)用函數(shù)調(diào)用函數(shù)f2()的結果:的結果:49x = 3 245.4.2 變量的生存期l根據(jù)生存期的不同,可將程序中的變量分為根據(jù)生存期的不同,可將程序中的變量分為自動自動變量變量和和靜態(tài)變量靜態(tài)變量l自動變量自動變量(auto)的生存期是說明了自動變量的函數(shù)或分的生存期是說明了自動變量的函數(shù)或分程序。它對存儲空間的利用是動態(tài)的。其初值在每次程序。它對存儲空間的利用是動態(tài)的。其初值在每次為自動變量分配存儲后都要重新設置。為自動變量分配存儲后都要重新設置。l靜態(tài)變量靜態(tài)變量(static)的生存期就是整個程序的運行期。在的生存期就是整個
16、程序的運行期。在程序開始運行前就為其分配相應的存儲空間,在程序程序開始運行前就為其分配相應的存儲空間,在程序的整個運行期間一直占用,直到結束。的整個運行期間一直占用,直到結束。25例5-5:自動變量的使用#include using namespace std;int func()int count = 0;/ 定義自動局部變量并初始化定義自動局部變量并初始化count+;return count;int main()/ 分別調(diào)用分別調(diào)用10次次func( ) 函數(shù)函數(shù)for(int i=0; i10; i+)coutfunc()t;coutendl;return 0;運行結果:運行結果:1
17、1 1 1 1 1 1 1 1 1 26例5-6:靜態(tài)局部變量的使用#include using namespace std;int func()static int count = 0;/ 聲明靜態(tài)局部變量并初始化聲明靜態(tài)局部變量并初始化count+;return count;/ 本函數(shù)每執(zhí)行一次,變量值加本函數(shù)每執(zhí)行一次,變量值加1int main()/ 分別調(diào)用分別調(diào)用10次次func( ) 函數(shù)函數(shù)for(int i=0;i10;i+)coutfunc()t;coutendl;return 0;運行結果:運行結果:1 2 3 4 5 6 7 8 9 10 27擴展閱讀l5.5 函數(shù)的嵌
18、套和遞歸調(diào)用函數(shù)的嵌套和遞歸調(diào)用l5.6帶默認形參值的函數(shù)帶默認形參值的函數(shù)l5.7函數(shù)重載函數(shù)重載l5.8函數(shù)模板函數(shù)模板285.5 函數(shù)的嵌套和遞歸調(diào)用l5.5.1 函數(shù)的嵌套函數(shù)的嵌套l5.5.2 遞歸調(diào)用遞歸調(diào)用295.5.1 函數(shù)的嵌套30例5-7 求兩個整數(shù)的最小公倍數(shù) l算法分析算法分析l兩個正整數(shù)的最小公倍數(shù)可以由下面公式計算出來:兩個正整數(shù)的最小公倍數(shù)可以由下面公式計算出來:兩個正整數(shù)的最小公倍數(shù)兩個正整數(shù)的最小公倍數(shù)=兩數(shù)乘積兩數(shù)乘積兩數(shù)的最大公約數(shù)兩數(shù)的最大公約數(shù)l求最大公約數(shù)的輾轉相除法:求最大公約數(shù)的輾轉相除法:l步驟步驟1: 如果如果p q,交換,交換p 和和q;l
19、步驟步驟2: 求求p/q的余數(shù)的余數(shù)r;l步驟步驟3: 如果如果r =0,則,則 q 就是所求的結果就是所求的結果; 否則,反否則,反復做如下工作:令復做如下工作:令p = q,q = r,重新計算,重新計算 p 和和q 的的余數(shù)余數(shù)r,直到,直到r =0為止,則為止,則 q 就是原來的兩正整數(shù)就是原來的兩正整數(shù)的最大公約數(shù)。的最大公約數(shù)。#include using namespace std;int gcd(int p, int q)/求最大公約數(shù)求最大公約數(shù)int r;if(pq) r = p; p = q;q = r;r = p%q; while(r != 0) p = q; q =
20、r; r = p%q;return q;int lcm(int p, int q) /求最小公倍數(shù)求最小公倍數(shù)return p*q/gcd(p, q);int main()int p, q;cout p q;cout 兩個整數(shù)的最小公倍數(shù)是:兩個整數(shù)的最小公倍數(shù)是: lcm(p, q) endl;return 0;325.5.2 遞歸調(diào)用l當定義一個函數(shù)時,如果其函數(shù)體內(nèi)有調(diào)當定義一個函數(shù)時,如果其函數(shù)體內(nèi)有調(diào)用其自身的語句,則該函數(shù)稱為遞歸函數(shù)。用其自身的語句,則該函數(shù)稱為遞歸函數(shù)。l一個直接或間接地調(diào)用了自身的算法就是一個直接或間接地調(diào)用了自身的算法就是遞歸算法。遞歸算法。33例例5-8
21、5-8 采用遞歸算法求采用遞歸算法求n!n!l算法:算法:由階乘的概念可以寫出其遞歸定義:由階乘的概念可以寫出其遞歸定義: 0! = 1 n! = n*(n-1)!#include using namespace std;int fac(int n) / 函數(shù)函數(shù)fac():求階乘的遞歸函數(shù):求階乘的遞歸函數(shù)if(n=0)/ 0!=1return 1;elsereturn n*fac(n-1);/ n!=n*(n-1)!int main()int n;cout n;cout n ! = fac(n) endl;return 0;35遞歸函數(shù)的調(diào)用順序遞歸函數(shù)的調(diào)用順序當當n取取5時,產(chǎn)生下列調(diào)
22、用序列:時,產(chǎn)生下列調(diào)用序列: 回代結果:回代結果:fac(5)= 5 *fac(4) fac(5)=5*4*3*2*1fac(4)= 4 *fac(3) fac(4)=4*3*2*1fac(3)= 3 *fac(2) fac(3)=3*2*1fac(2)= 2 *fac(1) fac(2)=2*1fac(1)= 136遞歸基本定理遞歸基本定理l一個問題是否可以轉換為遞歸來處理一個問題是否可以轉換為遞歸來處理必須滿足以下條件:必須滿足以下條件:l(1) 必須包含一種或多種非遞歸的基必須包含一種或多種非遞歸的基本形式;本形式;l(2) 一般形式必須能最終轉換到基本一般形式必須能最終轉換到基本形式
23、;形式;l(3) 由基本形式來結束遞歸。由基本形式來結束遞歸。375.6 帶默認形參值的函數(shù)l在函數(shù)定義時,可在形參列表中預先給一些默在函數(shù)定義時,可在形參列表中預先給一些默認值。認值。l當調(diào)用這種函數(shù)時,若為相應參數(shù)給出實參,當調(diào)用這種函數(shù)時,若為相應參數(shù)給出實參,則用實參初始化對應形參;如果沒給出,則自則用實參初始化對應形參;如果沒給出,則自動采用預先給定的默認形參值。動采用預先給定的默認形參值。l注意:注意:l要保證所有的缺省參數(shù)均放在參數(shù)表的最后,即默要保證所有的缺省參數(shù)均放在參數(shù)表的最后,即默認參數(shù)值必須按從右向左的順序聲明。如:認參數(shù)值必須按從右向左的順序聲明。如:void fun
24、c(int x, int n1 = 1, int n2 = 2);38例 5-9:帶默認形參值的函數(shù)#include using namespace std;void func(int x = 1, int y = 2, int z = 3)/ 帶默認形參值的函數(shù)帶默認形參值的函數(shù)cout 參數(shù)參數(shù)x:xendl;cout 參數(shù)參數(shù)y:yendl;cout 參數(shù)參數(shù)z:zendl;int main()cout 未給出實參值的情況:未給出實參值的情況:endl;func();cout 給出給出1個實參值的情況:個實參值的情況:endl;func(10);cout 給出給出2個實參值的情況:個實參
25、值的情況:endl;func(20, 30);cout 給出給出3個實參值的情況:個實參值的情況:endl;func(20, 30, 40);return 0;395.7函數(shù)重載l函數(shù)重載函數(shù)重載:l一組參數(shù)和返回值不同的函數(shù)共用一個函數(shù)名。一組參數(shù)和返回值不同的函數(shù)共用一個函數(shù)名。l注意:注意:l重載函數(shù)之間必須在重載函數(shù)之間必須在參數(shù)的類型參數(shù)的類型或或個數(shù)個數(shù)方面有所不方面有所不同。只有返回值類型不同的幾個函數(shù)不能重載。同。只有返回值類型不同的幾個函數(shù)不能重載。#include using namespace std;int max(int x, int y)/求兩個整型數(shù)的最大值求兩個
26、整型數(shù)的最大值return (xy)?x:y;double max(double x, double y)/求兩個雙精度數(shù)的最大值求兩個雙精度數(shù)的最大值return (xy)?x:y;char max(char x, char y)/求兩個字符的最大值求兩個字符的最大值return (xy)?x:y;int main()int m1=5, m2=3;double d1=12.5, d2=6.4;char c1=a, c2=b;coutm1和和m2中的最大值是中的最大值是: max(m1, m2) endl;coutd1和和d2中的最大值是中的最大值是: max(d1, d2) endl;cou
27、tc1和和c2中的最大值是中的最大值是: max(c1, c2) endl;return 0;415.8 函數(shù)模板l函數(shù)模板用于定義一個抽象通用的函數(shù),從而函數(shù)模板用于定義一個抽象通用的函數(shù),從而能夠對不同類型的數(shù)據(jù)進行相同的處理。能夠對不同類型的數(shù)據(jù)進行相同的處理。l定義一個函數(shù)模板的格式為:定義一個函數(shù)模板的格式為:template 函數(shù)類型函數(shù)類型 函數(shù)名函數(shù)名 ( 形式參數(shù)表形式參數(shù)表 ) 函數(shù)體函數(shù)體42例 5-11:求最大值的函數(shù)模板#include using namespace std;template T tmax(T a, T b)/求兩個數(shù)據(jù)最大值的函數(shù)模板求兩個數(shù)據(jù)最大
28、值的函數(shù)模板return ab?a:b;int main()int m1=5, m2=3;double d1=12.5, d2=6.4;char c1=a, c2=b;coutm1和和m2中的最大值是中的最大值是: tmax(m1, m2) endl;coutd1和和d2中的最大值是中的最大值是: tmax(d1, d2) endl;coutc1和和c2中的最大值是中的最大值是: tmax(c1, c2) endl;return 0;43上機指導l5. 9 Visual C+的跟蹤調(diào)試功能的跟蹤調(diào)試功能44(1)Restart(快捷鍵:(快捷鍵:Ctrl+Shift+F5)(2)Stop De
29、bugging(快捷鍵:(快捷鍵:Shift+F5)(3)Break Execution:(4)Apply Code Changes(快捷鍵:(快捷鍵:Alt+F10)(5)Show Next Statement(快捷鍵:(快捷鍵:Alt+Num *)(6)Step Into(快捷鍵:(快捷鍵:F11)(7)Step Over(快捷鍵(快捷鍵F10)(8)Step Out(快捷鍵:(快捷鍵:Shift+F11)(9)Run To Cursor(快捷鍵:(快捷鍵:Ctrl+F10)Debug工具欄45應用舉例l例例5-12顯示出楊輝三角形的前顯示出楊輝三角形的前10行行l(wèi)算法討論:算法討論:l楊
30、輝三角形的每一項也可以用二項式楊輝三角形的每一項也可以用二項式 的展開式的系數(shù)來表示。的展開式的系數(shù)來表示。l楊輝三角形的通項公式楊輝三角形的通項公式 l求解楊輝三角形的步驟為:求解楊輝三角形的步驟為:l編寫出階乘函數(shù)編寫出階乘函數(shù)l在主函數(shù)中調(diào)用階乘函數(shù)來構造楊輝三角形的通在主函數(shù)中調(diào)用階乘函數(shù)來構造楊輝三角形的通項公式,循環(huán)顯示輸出項公式,循環(huán)顯示輸出 )!( !mnmnnba)(#include #include using namespace std;int fac(int n)/求求n!的函數(shù)的函數(shù)int result=1;while(n1)result =result*n;n=n-
31、1;return result;int main()for(int n=0; n10; n=n+1)for(int m=0; m=n; m=m+1)coutfac(n)/(fac(m)*fac(n-m)t;coutendl;return 0;47例 5-13:找出100-200之間的所有素數(shù)#include using namespace std;bool isprime(int a)for(int i=2; i=a/2; i+)if(a%i = 0)return false; return true;int main()for(int m=100; m=200; m+)if(isprime(
32、m) coutmt;return 0;48例 5-14 根據(jù)用戶輸入的寬和高的數(shù)目,顯示一個由“*”號組成的矩形#include using namespace std;void rectangle(int w,int h)int i, j;for(j=0; jw; j+) cout*;/ 顯示矩形上面的邊顯示矩形上面的邊coutendl;for(i=1; ih-1; i+)/ 顯示矩形側邊顯示矩形側邊cout*;for(j=1; jw-1; j+) cout ;cout*endl;for(j=0; jw; j+) cout*;/ 顯示矩形下面的邊顯示矩形下面的邊coutendl;int main()int w, h;coutwh;rectangle(w, h);return 0;49例 5-15:當用戶輸入一個整數(shù)和數(shù)字后,能夠統(tǒng)計出該整
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國牛仔服行業(yè)市場全景評估及發(fā)展戰(zhàn)略研究報告
- 二零二五年度IT服務持續(xù)改進合同2篇
- 2025年墨魚丸項目可行性研究報告
- 二零二五年度二手房買賣貸款資產(chǎn)保全合同3篇
- 二零二五年度二手房買賣墊資代理協(xié)議書9篇
- 2024年股權眾籌投資合同2篇
- 2025年毛球修剪器合作協(xié)議書
- 二零二五年度“師帶徒”職業(yè)技能鑒定與認證服務合同3篇
- 二零二五年基金交易賬戶管理服務協(xié)議3篇
- 2024版?zhèn)€人欠款還款合同一
- 計算與人工智能概論知到智慧樹章節(jié)測試課后答案2024年秋湖南大學
- 2024年度油漆涂料生產(chǎn)線租賃合同3篇
- 2024-2024年上海市高考英語試題及答案
- 慶祝澳門回歸25周年主題班會 課件 (共22張)
- 《藥事管理與法規(guī)》期末考試復習題及答案
- 血液病染色體
- 幼兒園膳食管理委員會組織結構概述
- 介入治療的臨床應用
- 第四章 牛頓運動定律 章末檢測題(基礎卷)(含答案)2024-2025學年高一上學期物理人教版(2019)必修第一冊
- 華中師范大學《高等代數(shù)與解析幾何》2023-2024學年第一學期期末試卷
- QC課題提高金剛砂地面施工一次合格率
評論
0/150
提交評論