




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 在解決實際問題的過程中,常常會遇在解決實際問題的過程中,常常會遇到一些需要重復(fù)處理的問題。循環(huán)結(jié)構(gòu)可到一些需要重復(fù)處理的問題。循環(huán)結(jié)構(gòu)可用來處理需要重復(fù)處理的問題,所以,循用來處理需要重復(fù)處理的問題,所以,循環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu)。環(huán)結(jié)構(gòu)又稱為重復(fù)結(jié)構(gòu)。 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.1 循環(huán)的概念循環(huán)的概念 4.2 while 語句語句4.3 dowhile循環(huán)循環(huán) 4.4 for循環(huán)循環(huán) 4.5 break語句和語句和continue語句語句4.6 多重循環(huán)多重循環(huán)4.7 程序舉例
2、程序舉例 4.8 三種循環(huán)語句的比較三種循環(huán)語句的比較 第4章 循環(huán)結(jié)構(gòu)程序設(shè)計 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 循環(huán)結(jié)構(gòu),又稱為重復(fù)結(jié)構(gòu),是結(jié)構(gòu)化程序設(shè)計的三循環(huán)結(jié)構(gòu),又稱為重復(fù)結(jié)構(gòu),是結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)之一,在數(shù)值計算和很多問題的處理中都需要種基本結(jié)構(gòu)之一,在數(shù)值計算和很多問題的處理中都需要用到循環(huán)控制。例如,用迭代法求方程的根,計算全班同用到循環(huán)控制。例如,用迭代法求方程的根,計算全班同學的平均分等。幾乎所有的應(yīng)用程序都包含循環(huán),它和順學的平均分等。幾乎所有的應(yīng)用程序都包含循環(huán),它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復(fù)雜結(jié)構(gòu)程序的基本構(gòu)造序結(jié)構(gòu)
3、、選擇結(jié)構(gòu)共同作為各種復(fù)雜結(jié)構(gòu)程序的基本構(gòu)造單元。因此熟練地掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用單元。因此熟練地掌握選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的概念及使用,是程序設(shè)計最基本的要求。,是程序設(shè)計最基本的要求。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.1 循環(huán)的概念循環(huán)的概念 例如,計算例如,計算1100的累計和的累計和sum。 根據(jù)已有的知識,可以用根據(jù)已有的知識,可以用sum=1+2+3+100來計算,但顯來計算,但顯然很繁瑣?,F(xiàn)在換個思路來考慮:首先設(shè)置一個累加器然很繁瑣。現(xiàn)在換個思路來考慮:首先設(shè)置一個累加器sum,其,其初值為初值為0,利用,利用sum=sum+i來計
4、算(來計算(i依次取依次取1、2、100),),只要解決以下只要解決以下3個問題即可:個問題即可: 將將i的初值置為的初值置為1; 每執(zhí)行每執(zhí)行1次次sum=sum+i后,后,i值增值增1,其過程如下所示:,其過程如下所示: sum=0; i=1; 重復(fù)執(zhí)重復(fù)執(zhí) 行部分行部分 sum=sum+i; i=i+1; 當當i增到增到101時,停止計算。時,停止計算。 此時,此時,sum的值就是的值就是1100的累計和。的累計和。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.1 循環(huán)的概念循環(huán)的概念普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材普通高等教
5、育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.2 while 語句語句whilewhile用來實現(xiàn)用來實現(xiàn)“當型當型”循環(huán),其一般形式為:循環(huán),其一般形式為: while(while(循環(huán)條件表達式循環(huán)條件表達式) ) 循環(huán)體語句循環(huán)體語句 在執(zhí)行在執(zhí)行whilewhile語句時,先對循環(huán)條件表達式進行計算,若語句時,先對循環(huán)條件表達式進行計算,若其值為非其值為非0 0(真),則反復(fù)執(zhí)行循環(huán)體語句,直到循環(huán)條件表(真),則反復(fù)執(zhí)行循環(huán)體語句,直到循環(huán)條件表達式的值為達式的值為0 0(假)時,循環(huán)結(jié)束,程序控制轉(zhuǎn)至(假)時,循環(huán)結(jié)束,程序控制轉(zhuǎn)至whilewhile循環(huán)語循環(huán)語句
6、的下一條語句。其執(zhí)行過程如圖句的下一條語句。其執(zhí)行過程如圖4-14-1所示。所示。圖圖4-1 while語句的執(zhí)行過程語句的執(zhí)行過程普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材使用使用while語句時,應(yīng)注意以下幾個問題:語句時,應(yīng)注意以下幾個問題: 循環(huán)體語句可以是一個空語句、一個語句或一組語句。當循循環(huán)體語句可以是一個空語句、一個語句或一組語句。當循環(huán)體是一組語句時,則必須用花括號括起來,組成復(fù)合語句。環(huán)體是一組語句時,則必須用花括號括起來,組成復(fù)合語句。圖圖4-2 計算計算1100累計和的流程圖和累計和的流程圖和N-S圖描述圖描述 4.2 while 語句語句普通
7、高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i,sum; /* 定義整型變量定義整型變量i,sum */ sum=0; /* 將將sum的初值置為的初值置為0 */ i=1; /* 將將i的初值置為的初值置為1 */ while(i=100) /* 若若i=100則執(zhí)行循環(huán)體則執(zhí)行循環(huán)體 */ sum=sum+i; /* 將將i進行累加進行累加 */ i=i+1; /* i的值加的值加1 */ printf(sum=%dn,sum); /* 輸出輸出sum的值的值 */程序運行結(jié)果:程序運行結(jié)果:sum=50504.2 wh
8、ile 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 while語句中的循環(huán)條件表達式可以是任何類型的表達式。語句中的循環(huán)條件表達式可以是任何類型的表達式。 循環(huán)體內(nèi)一定要有循環(huán)體內(nèi)一定要有使表達式的值變?yōu)槭贡磉_式的值變?yōu)?(假)(假)的操作,否則的操作,否則 循環(huán)將無限進行,即形成死循環(huán)。循環(huán)將無限進行,即形成死循環(huán)。 while語句的特點是語句的特點是“先判斷,后執(zhí)行先判斷,后執(zhí)行”,如果循環(huán)條件表,如果循環(huán)條件表達達 式的值一開始就為式的值一開始就為0,則循環(huán)體語句一次也不執(zhí)行。,則循環(huán)體語句一次也不執(zhí)行。 例如,對于下面的語句:例如,對于下面的語句: w
9、hile(i-) printf(%d ,i); 如果變量如果變量i賦值賦值0時,則一次也不執(zhí)行循環(huán)體語句;如果變量時,則一次也不執(zhí)行循環(huán)體語句;如果變量 i賦值賦值4時,則其運行結(jié)果為:時,則其運行結(jié)果為: 3210。4.2 while 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.1 利用公式利用公式求求的近似值,直到最后一項的絕對值小于的近似值,直到最后一項的絕對值小于 為止為止。 分析:本題仍為求累加和問題,因此,循環(huán)體分析:本題仍為求累加和問題,因此,循環(huán)體中有中有sum=sum+temp這樣的求累加和表達式。這樣的求累加和表達式。temp為公式中
10、的某一項,其特點是,分母為奇數(shù),且相為公式中的某一項,其特點是,分母為奇數(shù),且相鄰項符號相反,當鄰項符號相反,當|temp| 時,停止求累加和。時,停止求累加和。的近似值的近似值pi可以表示為可以表示為pi=4sum。91715131144104104.2 while 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材(b) N-S圖描述圖描述圖圖4-3 例例4.1的流程圖和的流程圖和N-S圖描述圖描述(a) 流程圖描述流程圖描述 4.2 while 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include #include voi
11、d main() int sign=1; float i=1,temp=1,sum=0; while(fabs(temp)=1e-4) /* 當滿足條件時結(jié)束當滿足條件時結(jié)束 */ sum=sum+temp; /* 計算通項并進行累加計算通項并進行累加 */ i=i+2; /* i值加值加2得到下一個奇數(shù)得到下一個奇數(shù) */ sign=-sign; /* 相鄰項符號取反相鄰項符號取反 */ temp=sign/i; /* 求公式中的某一項求公式中的某一項temp */ sum=4*sum; printf(pi=%8.6fn,sum); /* 輸出輸出pi的值的值 */程序運行結(jié)果:程序運行結(jié)果
12、:pi=3.1413974.2 while 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材(a) 流程圖描述流程圖描述 (b) N-S圖描述圖描述 例例 4.2 從鍵盤上連續(xù)輸入字符,直到輸入從鍵盤上連續(xù)輸入字符,直到輸入“回車回車”符為止,統(tǒng)計符為止,統(tǒng)計 輸入的字輸入的字符中數(shù)字字符的個數(shù)。符中數(shù)字字符的個數(shù)。4.2 while 語句語句普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() char ch; int num=0; printf(Press enter to end input n); wh
13、ile(ch=getchar()!=n) /*按回車鍵時結(jié)束按回車鍵時結(jié)束*/ if(ch=0&ch=9) /* 只對數(shù)字字符的個數(shù)進行統(tǒng)計只對數(shù)字字符的個數(shù)進行統(tǒng)計*/ putchar(ch); /* 輸出數(shù)字字符輸出數(shù)字字符 */ num=num+1; /*對數(shù)字字符的個數(shù)進行累加統(tǒng)計對數(shù)字字符的個數(shù)進行累加統(tǒng)計*/ printf(nnum=%dn,num); /* 輸出數(shù)字字符的個數(shù)輸出數(shù)字字符的個數(shù) */程序運行結(jié)果:程序運行結(jié)果:Press enter to end input 5!a66bc7 5667num=44.2 while 語句語句普通高等教育普通高等教育“十一五十
14、一五”國家級規(guī)劃教材國家級規(guī)劃教材4.3 dowhile 循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.3 dowhile循環(huán)循環(huán) dowhile用來實現(xiàn)用來實現(xiàn)“直到型直到型”循環(huán),其一般形式為:循環(huán),其一般形式為: do 循環(huán)體語句循環(huán)體語句 while(循環(huán)條件表達式循環(huán)條件表達式); 執(zhí)行過程是,先執(zhí)行循環(huán)體語句,然后對循環(huán)條件表達式執(zhí)行過程是,先執(zhí)行循環(huán)體語句,然后對循環(huán)條件表達式進行計算,若其值為真(非進行計算,若其值為真(非0),則重復(fù)上述過程,直到循環(huán)),則重復(fù)上述過程,直到循環(huán)條件表達式的值為假(條件表達式的值為假(0)時,循環(huán)結(jié)束,程序控
15、制轉(zhuǎn)至該結(jié))時,循環(huán)結(jié)束,程序控制轉(zhuǎn)至該結(jié)構(gòu)的下一條語句。其執(zhí)行過程如圖構(gòu)的下一條語句。其執(zhí)行過程如圖4-5所示。所示。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材使用使用dowhile語句時,應(yīng)注意以下幾個問題:語句時,應(yīng)注意以下幾個問題: 當循環(huán)體是一組語句時,則必須用花括號括起來,組當循環(huán)體是一組語句時,則必須用花括號括起來,組 成復(fù)合語句。成復(fù)合語句。 循環(huán)體內(nèi)一定要有使表達式的值變?yōu)檠h(huán)體內(nèi)一定要有使表達式的值變?yōu)?(假)的操作,(假)的操作, 否則循環(huán)將無限進行。否則循環(huán)將無限進行。 dowhile循環(huán)是先執(zhí)行,后判斷,因此循環(huán)體至少執(zhí)循環(huán)是先執(zhí)行,后判斷,
16、因此循環(huán)體至少執(zhí) 行一次。行一次。 do和和while都是關(guān)鍵字,配合起來使用,都是關(guān)鍵字,配合起來使用,while()后面的后面的 “;”不可缺少。不可缺少。4.3 dowhile循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.3 用用dowhile循環(huán)編寫計算循環(huán)編寫計算sum=1+2+3+100的程序。的程序。(a) 流程圖描述流程圖描述(b) N-S圖描述圖描述4.3 dowhile循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main( ) int sum=0,i=1; do /* 開始
17、執(zhí)行循環(huán)開始執(zhí)行循環(huán) */ sum=sum+i; /* 計算累加和計算累加和 */ i+; /* i自加自加1 */ while(i=100); /* 如果如果i=100,則循環(huán)繼續(xù)執(zhí)行,則循環(huán)繼續(xù)執(zhí)行 */ printf(sum=%dn,sum); /* 輸出累加和輸出累加和 */程序運行結(jié)果:程序運行結(jié)果:5050例例4.3 用用dowhile循環(huán)編寫計算循環(huán)編寫計算sum=1+2+3+100的程序。的程序。4.3 dowhile循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.4 輸入若干名學生的某門課程的成績,以負輸入若干名學生的某門課程的成績,以負
18、數(shù)作為結(jié)束輸入的標志,計算該門課程的平均數(shù)作為結(jié)束輸入的標志,計算該門課程的平均成績。成績。 首先輸入一個成績,若輸入負數(shù),直接結(jié)首先輸入一個成績,若輸入負數(shù),直接結(jié)束 ; 否 則 使 用 循 環(huán) 結(jié) 構(gòu) 計 算 總 成 績束 ; 否 則 使 用 循 環(huán) 結(jié) 構(gòu) 計 算 總 成 績s u m = s u m + s c o r e , 同 時 統(tǒng) 計 學 生 人 數(shù), 同 時 統(tǒng) 計 學 生 人 數(shù)num=num+1,最后計算平均成績,最后計算平均成績ave=sum/num。4.3 dowhile循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include v
19、oid main() int num=0; float score,sum=0,ave; printf(input score of student:n); scanf(%f,&score); if(score=0); /* 若輸入負數(shù),則結(jié)束循環(huán)若輸入負數(shù),則結(jié)束循環(huán) */ ave=sum/num; /* 計算平均成績計算平均成績 */ printf(average=%6.2fn,ave); /* 輸出平均成績輸出平均成績 */ 程序運行結(jié)果:程序運行結(jié)果:input score of student:80 67 -1 average=73.504.3 dowhile循環(huán)循環(huán) 普通高
20、等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.4 for循環(huán)循環(huán) C 語言的語言的 for 循環(huán)使用最為靈活,功能循環(huán)使用最為靈活,功能很強。不僅可以用于計數(shù)型循環(huán),而且可以很強。不僅可以用于計數(shù)型循環(huán),而且可以用于條件型循環(huán)。完全可以代替用于條件型循環(huán)。完全可以代替 while 和和 dowhile 循環(huán)。循環(huán)。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.4 for循環(huán)循環(huán) for循環(huán)語句的一般形式為:循環(huán)語句的一般形式為: for(表達式表達式1;表達式;表達式2;表達式;表達式3) 循環(huán)體語句循環(huán)體語句 其中,其中,for是是C語言的關(guān)鍵字
21、,其后圓括號通常語言的關(guān)鍵字,其后圓括號通常有有3個表達式。表達式之間用分號隔開,表達式可以個表達式。表達式之間用分號隔開,表達式可以是是C語言中任何合法的表達式。表達式語言中任何合法的表達式。表達式1給循環(huán)變量給循環(huán)變量賦初值;表達式賦初值;表達式2是循環(huán)條件;表達式是循環(huán)條件;表達式3修改循環(huán)變修改循環(huán)變量值。量值。for后面的語句為循環(huán)體。循環(huán)體多于一條語后面的語句為循環(huán)體。循環(huán)體多于一條語句時,要用復(fù)合語句表示。句時,要用復(fù)合語句表示。 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 for循環(huán)語句的作用:循環(huán)語句的作用: 首先求解表達式首先求解表達式1的值,然后
22、求解表的值,然后求解表達式達式2的值,若表達式的值非的值,若表達式的值非0(真)時,就執(zhí)行循環(huán)體,執(zhí)行(真)時,就執(zhí)行循環(huán)體,執(zhí)行一次循環(huán)體后求解表達式一次循環(huán)體后求解表達式3的值的值,再求解表達式再求解表達式2的值,若表達式的值,若表達式2仍不為仍不為0再執(zhí)行循環(huán)體再執(zhí)行循環(huán)體,再求解表達式再求解表達式3的值。如此反復(fù)直到表的值。如此反復(fù)直到表達式達式2的值為的值為0時時,整個循環(huán)結(jié)束。其執(zhí)行過程如圖所示。整個循環(huán)結(jié)束。其執(zhí)行過程如圖所示。4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 for語句最簡單的應(yīng)用形式,也就是最易理解的語句最簡單的應(yīng)用
23、形式,也就是最易理解的形式:形式: for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 循環(huán)體語句循環(huán)體語句 4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材執(zhí)行執(zhí)行執(zhí)行執(zhí)行for循環(huán)之后的語句循環(huán)之后的語句執(zhí)行執(zhí)行執(zhí)行表達式執(zhí)行表達式1循環(huán)初始條件循環(huán)初始條件循環(huán)控制條件循環(huán)控制條件循環(huán)體循環(huán)體普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.5 用用for循環(huán)編寫計算循環(huán)編寫計算sum=1+2+3+100的程序。的程序。4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國
24、家級規(guī)劃教材國家級規(guī)劃教材#include void main() int sum=0,i; /* 定義整型變量定義整型變量sum,i并對并對sum賦初值賦初值 */ for(i=1;i=100;i+) sum=sum+i; /* 通過通過for循環(huán)對循環(huán)對i進行累加進行累加 */ printf(“sum=%dn”,sum); /* 輸出累加和輸出累加和 */4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 使用使用 for 循環(huán)時,循環(huán)時,for 語句中的表達式可以部分或全部省語句中的表達式可以部分或全部省略,但兩個略,但兩個“;”不可省略。不可省
25、略。 這時沒有了給循環(huán)變量賦初值的操作,則應(yīng)這時沒有了給循環(huán)變量賦初值的操作,則應(yīng) 該在該在for語句之前給循環(huán)變量賦初值。語句之前給循環(huán)變量賦初值。 例如:例如: i=1; /* 對循環(huán)變量對循環(huán)變量i賦初值賦初值 */ for( ;i=100;i+) /*省略了表達式省略了表達式1 */ sum=sum+i; ,相當于缺少條件判斷,循環(huán)將無限進行,因,相當于缺少條件判斷,循環(huán)將無限進行,因 此如果缺少表達式此如果缺少表達式2,可以認為表達式,可以認為表達式2始終為真。始終為真。4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 ,則可以把循環(huán)變量的
26、修改部分放到循環(huán)體,則可以把循環(huán)變量的修改部分放到循環(huán)體 中進行。中進行。 例如:例如: for(i=1;i=100; ) /* 省略了表達式省略了表達式3 */ sum=sum+i; i+; /* 在循環(huán)體內(nèi)改變循環(huán)變量在循環(huán)體內(nèi)改變循環(huán)變量i的值的值 */ ,相當于在循環(huán)中只有表達式,相當于在循環(huán)中只有表達式2, 即只給出循環(huán)結(jié)束的條件。這時可以采用上述和中的即只給出循環(huán)結(jié)束的條件。這時可以采用上述和中的 方法,保證循環(huán)正常結(jié)束。方法,保證循環(huán)正常結(jié)束。 ,for( ; ; )相當于相當于while(1)。4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級
27、規(guī)劃教材例例4.6 用用for循環(huán)編寫計算循環(huán)編寫計算n!的程序。的程序。 由于是個連乘的重復(fù)過程,每次循環(huán)完成一次乘法,共循由于是個連乘的重復(fù)過程,每次循環(huán)完成一次乘法,共循環(huán)次。在前面我們對計算累加和采用了環(huán)次。在前面我們對計算累加和采用了“sum=sum+第第i項項”的的循環(huán)算式,類似對于連乘可以采用循環(huán)算式,類似對于連乘可以采用“t=t*第第i項項”的循環(huán)算式,的循環(huán)算式,其中第其中第i項就是循環(huán)變量項就是循環(huán)變量i。4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int n,i,t=1; /* 定義
28、整型變量定義整型變量i,t,并對階乘并對階乘t賦初值賦初值1 */ printf(input n:); /* 輸出提示信息輸出提示信息 */ scanf(%d,&n); /* 從鍵盤輸入從鍵盤輸入n的值的值 */ for(i=1;i=n;i+) t=t*i; /* 循環(huán)重復(fù)循環(huán)重復(fù)n次次,計算計算n! */ printf(t=%dn,t); /* 輸出輸出n的階乘的階乘 */程序運行結(jié)果:程序運行結(jié)果:input n:5 t=1204.4 for循環(huán)循環(huán) 例例4.7普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一
29、五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i; float score,max,min; scanf(%f,&score); max=score; /* 將輸入的第一個學生的成績賦給將輸入的第一個學生的成績賦給max */ min=score; /* 將輸入的第一個學生的成績賦給將輸入的第一個學生的成績賦給min */ for(i=2;imax) /*輸入的成績大于輸入的成績大于max, 將輸入的成績值賦給將輸入的成績值賦給max*/ max=score; if(scoremin) /* 輸入的成績小于輸入的成績小于min,則將輸入的成績值
30、賦給則將輸入的成績值賦給min */ min=score; printf(nmax=%6.2f min=%6.2fn,max,min); 程序運行結(jié)果:程序運行結(jié)果:75 89 66 48 98 100 79 85 90 68 max=100.00 min= 48.004.4 for循環(huán)循環(huán) 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.5 break語句和語句和continue語句語句 為了使循環(huán)控制更加靈活,為了使循環(huán)控制更加靈活,C 語言允許語言允許在特定條件成立時,使用在特定條件成立時,使用 break 語句強行結(jié)語句強行結(jié)束循環(huán),或使用束循環(huán),或使用 con
31、tinue 語句跳過循環(huán)體語句跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)條件的判定語句。其余語句,轉(zhuǎn)向循環(huán)條件的判定語句。 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.5 break語句和語句和continue語句語句 4.5.1 break 語句語句 break 語句的一般形式為:語句的一般形式為: break 語句有兩個作用:用于語句有兩個作用:用于 switch 語句時,退語句時,退出出 switch 語句,程序轉(zhuǎn)至語句,程序轉(zhuǎn)至 switch 語句下面的語句;用語句下面的語句;用于循環(huán)語句時,退出包含它的循環(huán)體,程序轉(zhuǎn)至循環(huán)于循環(huán)語句時,退出包含它的循環(huán)體,程序轉(zhuǎn)至循環(huán)體
32、下面的語句。體下面的語句。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.8 找出在找出在100以內(nèi)的自然數(shù)中,能被以內(nèi)的自然數(shù)中,能被9整除的第一個數(shù)。整除的第一個數(shù)。4.5 break語句和語句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i,n; printf(input n:); scanf(%d,&n); for(i=n;i=100;i+) if(i%9=0) /* 判別判別i能否被能否被9整除整除 */ printf(the first numbe
33、r is %d.n,i); /*i能被能被9整除,則輸出整除,則輸出i的值的值*/ break; /* 提前退出循環(huán)提前退出循環(huán) */ 程序運行結(jié)果:程序運行結(jié)果:input n:1 the first number is 9.input n:65 the first number is 72.4.5 break語句和語句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.5.2 continue 語句語句 continue語句的一般形式為:語句的一般形式為: continue語句作用是:結(jié)束本次循環(huán),跳過循環(huán)語句作用是:結(jié)束本次循環(huán),跳過循環(huán)體
34、中尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循體中尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判斷。在環(huán)的判斷。在while和和dowhile語句中,語句中,continue語語句把程序控制轉(zhuǎn)到句把程序控制轉(zhuǎn)到while后面的表達式處,在后面的表達式處,在for語句語句中,中,continue語句把程序控制轉(zhuǎn)到表達式語句把程序控制轉(zhuǎn)到表達式3處。處。 4.5 break語句和語句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.9 找出在找出在100以內(nèi)的自然數(shù)中,能被以內(nèi)的自然數(shù)中,能被9整除的所有數(shù)。整除的所有數(shù)。4.5 break語句和語
35、句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i,n; /* 定義整型變量定義整型變量i,n */ printf(input n:); /* 輸出提示信息輸出提示信息 */ scanf(%d,&n); /* 從鍵盤輸入從鍵盤輸入n的值的值 */ printf(the number is:); for(i=n;i=100;i+) if(i%9=0) /* 判別判別i能否被能否被9整除整除 */ printf(%4d,i); /* i能被能被9整除,則輸出整除,則輸出i的值的值 */ co
36、ntinue; /* 結(jié)束本次循環(huán)結(jié)束本次循環(huán), 轉(zhuǎn)至轉(zhuǎn)至i+處處 */ 程序運行結(jié)果:程序運行結(jié)果:input n:65 the number is:728190994.5 break語句和語句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.10 分析下面程序的執(zhí)行結(jié)果。分析下面程序的執(zhí)行結(jié)果。#include void main() int k,b=1; for(k=1;k5) /* 若若b10,則結(jié)束整個循環(huán)則結(jié)束整個循環(huán) */ break; if(b%2=1) /* 若若b/2=1,則則b=b+3并結(jié)束本次循環(huán)并結(jié)束本次循環(huán) */
37、 b+=3; continue; /* 轉(zhuǎn)至轉(zhuǎn)至k+處處 */ b-; 程序運行結(jié)果:程序運行結(jié)果:k=1, b=1k=2, b=4k=3, b=3k=4, b=64.5 break語句和語句和continue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材注意注意: continue 語句和語句和 break 語句的區(qū)別:語句的區(qū)別:continue 語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行;break 語句則是結(jié)束循環(huán),不再進行條件判斷。語句則是結(jié)束循環(huán),不再進行條件判斷。 4.5 break語句和語句和cont
38、inue語句語句 普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.6 多重循環(huán)多重循環(huán) 一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。構(gòu),稱為循環(huán)的嵌套。while、dowhile 和和for三種循環(huán)語句可以互相嵌套,內(nèi)嵌的循環(huán)體內(nèi)三種循環(huán)語句可以互相嵌套,內(nèi)嵌的循環(huán)體內(nèi)還可以嵌套循環(huán),這就是多重循環(huán)。還可以嵌套循環(huán),這就是多重循環(huán)。普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.6 多重循環(huán)多重循環(huán)例例4.11 以下面形式輸出九九乘法表。以下面形式輸出九九乘法表。11= 121= 2 22= 431
39、= 3 32= 6 33= 941= 4 42= 8 43=12 44=1651= 5 52=10 53=15 55=2571= 7 72=14 73=21 77=4981= 8 82=16 83=24 88=6491= 9 92=18 93=27 99=81普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材分析:求積可以用兩層分析:求積可以用兩層for循環(huán)結(jié)構(gòu)實現(xiàn):循環(huán)結(jié)構(gòu)實現(xiàn): / /* * i i表示被乘數(shù)表示被乘數(shù) * */ / / /* * j j表示乘數(shù)表示乘數(shù) * */ / 第一個第一個for語句,稱為語句,稱為外循環(huán)外循環(huán),i表示被乘數(shù)。第二個表示被乘數(shù)。第二
40、個for語語句,稱為句,稱為內(nèi)循環(huán)內(nèi)循環(huán),j表示乘數(shù)。嵌套重復(fù)循環(huán)結(jié)構(gòu)總是先完整表示乘數(shù)。嵌套重復(fù)循環(huán)結(jié)構(gòu)總是先完整地執(zhí)行內(nèi)循環(huán)一次,外循環(huán)再執(zhí)行一次。地執(zhí)行內(nèi)循環(huán)一次,外循環(huán)再執(zhí)行一次。4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材據(jù)上述分析,算法可以用如圖所示的流程圖和據(jù)上述分析,算法可以用如圖所示的流程圖和N-S圖描述。圖描述。4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i,j,t; /* 定義整型變量定義整型變量i,j,t */ for(i=1
41、;i=9;i+) /* 外循環(huán)用于控制行數(shù)外循環(huán)用于控制行數(shù) */ for(j=1;j=i;j+) /* 內(nèi)循環(huán)用于控制列數(shù)內(nèi)循環(huán)用于控制列數(shù) */ t=i*j; /* 計算計算i*j,并賦值給變量,并賦值給變量t */ printf(%3d*%d=%2d,i,j,t); /* 輸出輸出t,即,即i*j的值的值*/ printf(n); /* 輸出輸出1行后換行行后換行 */ 4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.12 用嵌套循環(huán)計算用嵌套循環(huán)計算 的值的值。!3!2! 1n4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十
42、一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int i,j,n; long int t,sum=0; printf(input n:); scanf(%d,&n); for(i=1;i=n;i+) /* 外層循環(huán)重復(fù)外層循環(huán)重復(fù)n次,求累加和次,求累加和*/ t=1; /* 置置t的初值為的初值為1,以保證每次求階乘都從,以保證每次求階乘都從1開始連乘開始連乘 */ for(j=1;j=i;j+) /* 內(nèi)層循環(huán)重復(fù)內(nèi)層循環(huán)重復(fù)i次,計算次,計算t=i! */ t=t*j; sum=sum+t; /* 把把i!累加到累加到sum中中 */ printf(
43、sum=%ldn,sum); 程序運行結(jié)果程序運行結(jié)果:input n:4 sum=334.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.13 輸出一個任意行的等腰三角形圖形。輸出一個任意行的等腰三角形圖形。 * * * *分析:分析: 把三角形頂點放在屏幕第把三角形頂點放在屏幕第40列的位置,每行的輸出開始列的位置,每行的輸出開始位置比上一行提前一列,每行輸出星號的個數(shù)是行數(shù)的位置比上一行提前一列,每行輸出星號的個數(shù)是行數(shù)的2倍減倍減去去1。輸入。輸入n的值來確定所需要的行數(shù)。程序的外循環(huán)控制輸?shù)闹祦泶_定所需要的行數(shù)。程序的外循環(huán)控制輸出的行
44、數(shù),內(nèi)循環(huán)是兩個并列的循環(huán),前面一個循環(huán)輸出每出的行數(shù),內(nèi)循環(huán)是兩個并列的循環(huán),前面一個循環(huán)輸出每行前面的空格,后面一個循環(huán)輸出該行的星號,星號輸出結(jié)行前面的空格,后面一個循環(huán)輸出該行的星號,星號輸出結(jié)束后換行,接著輸出下一行。束后換行,接著輸出下一行。4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int n,j,k; printf(input n=); scanf(%d,&n); /*從鍵盤上輸入等腰三角形所占的行數(shù)從鍵盤上輸入等腰三角形所占的行數(shù) */ for(k=1; k=n; k+) /*
45、此循環(huán)用于控制行數(shù)此循環(huán)用于控制行數(shù) */ for(j=1;j40-k;j+) /* 此循環(huán)用于控制星號前的空格此循環(huán)用于控制星號前的空格 */ printf( ); for(j=1;j=2*k-1;j+) /*此循環(huán)用于控制一行內(nèi)打印星號的個數(shù)此循環(huán)用于控制一行內(nèi)打印星號的個數(shù) */ printf(*); printf(n); /* 輸出一行后換行輸出一行后換行 */ * * * *4.6 多重循環(huán)多重循環(huán)普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.7 程程 序序 舉舉 例例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.7 程序舉例程序舉
46、例 例例4.14 編寫程序求斐波納契(編寫程序求斐波納契(Fibonacci)數(shù)列的前)數(shù)列的前20項,項,要求每行輸出要求每行輸出5個斐波納契數(shù)。個斐波納契數(shù)。 斐波納契數(shù)列源自一個有趣的問題:一對小兔,一個月后斐波納契數(shù)列源自一個有趣的問題:一對小兔,一個月后長成中兔,第長成中兔,第3個月長成大兔,長成大兔以后每個月生一對小個月長成大兔,長成大兔以后每個月生一對小兔。問第兔。問第20個月有多少對兔子?個月有多少對兔子? 斐波納契數(shù)列的規(guī)律是:每個數(shù)等于前兩個數(shù)之和。其可斐波納契數(shù)列的規(guī)律是:每個數(shù)等于前兩個數(shù)之和。其可以用數(shù)學上的遞推公式來表示:以用數(shù)學上的遞推公式來表示:2211121n
47、ffnnfnnn普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() long f1,f2,f3; int k; f1=1,f2=1; /* 斐波納契數(shù)列的頭兩個數(shù)斐波納契數(shù)列的頭兩個數(shù) */ printf(%10ld%10ld,f1,f2); /* 輸出斐波納契數(shù)列的頭兩個數(shù)輸出斐波納契數(shù)列的頭兩個數(shù) */ for(k=3;k=20;k+) /* 循環(huán)循環(huán)18次求斐波納契數(shù)列的后次求斐波納契數(shù)列的后18項項 */ f3=f1+f2; /* 新的斐
48、波納契數(shù)的一個數(shù)等于前兩個數(shù)之和新的斐波納契數(shù)的一個數(shù)等于前兩個數(shù)之和 */ printf(%10ld,f3); f1=f2; /* 迭代,用新的數(shù)覆蓋舊的數(shù)迭代,用新的數(shù)覆蓋舊的數(shù) */ f2=f3; if(k%5=0) printf(n); /* 每輸出每輸出5個斐波納契數(shù)換行個斐波納契數(shù)換行 */ 4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材程序運行結(jié)果:程序運行結(jié)果:1 1 2 3 58 13 21 34 5589 144 233 377 610987 1597 2584 4181 67654.7 程序舉例程序舉例普通高等教育普通高等教育
49、“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.15 利用下面級數(shù)求正弦函數(shù)的值(要求算到最后一項的利用下面級數(shù)求正弦函數(shù)的值(要求算到最后一項的絕對值小于絕對值小于 為止)。為止)。 這是一個多項式累加和,每一項的符號和分子、分母都這是一個多項式累加和,每一項的符號和分子、分母都是有規(guī)律性地變化:符號依此作正負變化;分子是是有規(guī)律性地變化:符號依此作正負變化;分子是x的奇數(shù)次的奇數(shù)次冪;分母則是從冪;分母則是從1開始的奇數(shù)階乘。可以用循環(huán)結(jié)構(gòu)實現(xiàn),當開始的奇數(shù)階乘??梢杂醚h(huán)結(jié)構(gòu)實現(xiàn),當循環(huán)計算到某一項循環(huán)計算到某一項 |temp| 時循環(huán)結(jié)束,輸出時循環(huán)結(jié)束,輸出 sin(x) 的值的
50、值。 ! 9! 7! 5! 3sin9753xxxxxx-610-6104.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include #include #define PI 3.14159void main() float x,x1,y; float t,temp,nume; int i,j,sign=1; printf(input x=); /* 輸出提示信息輸出提示信息 */ scanf(%f,&x1); /* 從鍵盤輸入角度從鍵盤輸入角度x1
51、的值的值 */ x=x1*PI/180; /* 將角度將角度x1換算成弧度換算成弧度 */ y=x; /* 把級數(shù)的第一項把級數(shù)的第一項x作為累加和的初值作為累加和的初值 */ temp=x; /* 將將x賦值給賦值給temp */ 4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 for(i=3;fabs(temp)=1e-6;i+=2) /*當前項當前項|temp|= , 執(zhí)行執(zhí)行for循環(huán)循環(huán) */ t=1; nume=1; for(j=1;j=i;j+) t=t*j; /* 通過通過for循環(huán)計算當前項的階乘循環(huán)計算當前項的階乘t */ nu
52、me=nume*x; /* 通過通過for循環(huán)計算當前項的分子循環(huán)計算當前項的分子nume */ sign=-sign; /* 將將sign值的符號取反值的符號取反 */ temp=sign*nume/t; /* 計算新的當前項值計算新的當前項值temp */ y=y+temp; /* 對對temp進行累加進行累加 */ printf(sin(%.2f)=%fn,x1,y);程序運行結(jié)果:程序運行結(jié)果:input x=2 sin(2.0)=0.034899-6104.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.16 從鍵盤上輸入一個大于從鍵盤
53、上輸入一個大于2的整數(shù),判斷的整數(shù),判斷m是否為素數(shù)。是否為素數(shù)。 所謂素數(shù)是指除了所謂素數(shù)是指除了1和它本身以外,再不能被任何整數(shù)整和它本身以外,再不能被任何整數(shù)整除的數(shù)。根據(jù)這一定義,判斷一個整數(shù)是否素數(shù),只需把被除的數(shù)。根據(jù)這一定義,判斷一個整數(shù)是否素數(shù),只需把被2到到m -1之間的每一個整數(shù)去除,如果都不能被整除,則之間的每一個整數(shù)去除,如果都不能被整除,則m就是就是一個素數(shù)。一個素數(shù)。 例如例如:判斷判斷19是否素數(shù),將是否素數(shù),將19被被2,3,18除,都不能整除,都不能整除除19,則,則19就是一個素數(shù)。就是一個素數(shù)。 實際上,除數(shù)只要為實際上,除數(shù)只要為2 的全部整數(shù)即可。讓的
54、全部整數(shù)即可。讓m被被2除,如果除,如果m能被能被2之中任何一個整數(shù)整除,則說明之中任何一個整數(shù)整除,則說明m不是素數(shù)不是素數(shù),否則,否則m一定是素數(shù)。一定是素數(shù)。 mm4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材void main() int m,i,k,flag; flag=1; /* 將素數(shù)標志將素數(shù)標志flag設(shè)置為設(shè)置為1 */ do printf(input a integer:); /* 輸出提示信息輸出提示信息 */ scanf(%ld,&
55、amp;m); /* 從鍵盤輸入變量從鍵盤輸入變量m的值的值 */ while(m=2); /* 若若m=2,則結(jié)束,則結(jié)束dowhile循環(huán)循環(huán) */ k=(int)sqrt(m); /* 將將sqrt(m)取整后賦值給變量取整后賦值給變量k */ for(i=2;i=k;i+) if(m%i=0) /*若若m不是素數(shù),則將素數(shù)標志不是素數(shù),則將素數(shù)標志flag置為置為0并結(jié)束循環(huán)并結(jié)束循環(huán)*/ flag=0; break; if(flag) /* 若素數(shù)標志若素數(shù)標志flag=1,則輸出該數(shù)是素數(shù),則輸出該數(shù)是素數(shù) */ printf(%d is a prime mumber.n,m);
56、else /* 若素數(shù)標志若素數(shù)標志flag=0,則輸出該數(shù)不是素數(shù),則輸出該數(shù)不是素數(shù) */ printf(%d is not a prime mumber.n ,m);4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材程序運行結(jié)果:程序運行結(jié)果:input a integer:35 35 is not a prime mumber.input a integer:19 19 is a prime mumber.4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材 例例4.17 把一元錢換成把一元錢換成5分,分
57、,2分,分,1分的零錢,統(tǒng)計共有多少種換法。分的零錢,統(tǒng)計共有多少種換法。 用用a、b、c分別表示換的分別表示換的5分、分、2分、分、1分的張數(shù),則分的張數(shù),則a、b、c的值應(yīng)該的值應(yīng)該滿足:滿足:5*a+2*b+c=100。4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int a,b,c,cnt=0; for(a=0;a=20;a+) /* 本循環(huán)表示本循環(huán)表示5分的有多少種換法分的有多少種換法 */ for(b=0;b=50;b+) /* 本循環(huán)表示本循環(huán)表示2分的有多少種換法分的有多少種換法 */ f
58、or(c=0;c=100;c+) /* 本循環(huán)表示本循環(huán)表示1分的有多少種換法分的有多少種換法 */ if(5*a+2*b+c=100) cnt+; /* 經(jīng)過三重循環(huán)后,統(tǒng)計出有多少種換法經(jīng)過三重循環(huán)后,統(tǒng)計出有多少種換法 */ printf(count=%dn,cnt); /* 輸出結(jié)果輸出結(jié)果 */程序運行結(jié)果:程序運行結(jié)果:count=5414.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材例例4.18 計算用戶輸入的兩個正整數(shù)之間的所有整數(shù)中計算用戶輸入的兩個正整數(shù)之間的所有整數(shù)中0,1,2,9數(shù)碼的個數(shù)。例如,數(shù)碼的個數(shù)。例如,101104
59、之間總共包含四個整數(shù)之間總共包含四個整數(shù)101,102,103,104,其中,其中0的個數(shù)為的個數(shù)為4,1的個數(shù)為的個數(shù)為5,2、3、4的的個數(shù)為個數(shù)為1,其余數(shù)碼沒有出現(xiàn)都為,其余數(shù)碼沒有出現(xiàn)都為0。 要計算某整數(shù)中包含的各個數(shù)碼的個數(shù),必須對該整數(shù)進要計算某整數(shù)中包含的各個數(shù)碼的個數(shù),必須對該整數(shù)進行分解,求得所包含的各個數(shù)碼,其方法可以通過每次除以行分解,求得所包含的各個數(shù)碼,其方法可以通過每次除以10取余數(shù)得到,然后再對商進行同樣的處理,直到商為取余數(shù)得到,然后再對商進行同樣的處理,直到商為0時為止。時為止。對所得到的數(shù)碼進行計數(shù),可采用對所得到的數(shù)碼進行計數(shù),可采用switch語句來
60、實現(xiàn)。語句來實現(xiàn)。4.7 程序舉例程序舉例普通高等教育普通高等教育“十一五十一五”國家級規(guī)劃教材國家級規(guī)劃教材#include void main() int num1,num2,n,s,r; int cnt0=0,cnt1=0,cnt2=0,cnt3=0,cnt4=0; int cnt5=0,cnt6=0,cnt7=0,cnt8=0,cnt9=0; do /* 循環(huán)用于從鍵盤上輸入兩個正整數(shù)循環(huán)用于從鍵盤上輸入兩個正整數(shù) */ printf(input two integer:); scanf(%d %d,&num1,&num2); while(num10|num2num2); /*若若num10或或num2num2,則退出循環(huán)則退出循環(huán)*/ for(n=num
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郴州布袋風管施工方案
- 水上光電施工方案
- 鄭州汽車工程職業(yè)學院《綠色建筑設(shè)計原理》2023-2024學年第二學期期末試卷
- 商洛日光溫室施工方案
- 山西管理職業(yè)學院《生物反饋與行為矯正技術(shù)》2023-2024學年第二學期期末試卷
- 鋁合金護欄的施工方案
- 寧波財經(jīng)學院《籃球B》2023-2024學年第二學期期末試卷
- 柳州職業(yè)技術(shù)學院《新媒體項目管理》2023-2024學年第一學期期末試卷
- 景德鎮(zhèn)藝術(shù)職業(yè)大學《汽輪機原理及設(shè)備》2023-2024學年第一學期期末試卷
- 內(nèi)蒙古北方職業(yè)技術(shù)學院《智能制造技術(shù)》2023-2024學年第二學期期末試卷
- 學院專業(yè)實驗室的開放共享模式
- 2025年工地監(jiān)護員考試題及答案
- 個人住宅裝修改造合同
- 2025年臺球裁判能力測試題及答案
- 《童年的水墨畫》公開課一等獎創(chuàng)新教學設(shè)計
- T-CSGPC 033-2024 陸上風電場設(shè)施變形測量技術(shù)規(guī)程
- 2025建筑信息模型技術(shù)員(中級)技能鑒定精練考試指導題庫及答案(濃縮300題)
- 《頸椎病的針灸治療》課件
- 《木蘭詩》歷年中考古詩欣賞試題匯編(截至2024年)
- 2024年音樂節(jié)行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- 2024西部縣域經(jīng)濟百強研究
評論
0/150
提交評論