版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四1 1第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計教學(xué)教學(xué)要求:要求: 通過本章的學(xué)習(xí)要求學(xué)生掌握循環(huán)結(jié)構(gòu)的三種語句的基本通過本章的學(xué)習(xí)要求學(xué)生掌握循環(huán)結(jié)構(gòu)的三種語句的基本語法及循環(huán)執(zhí)行過程;掌握語法及循環(huán)執(zhí)行過程;掌握breakbreak語句和語句和continuecontinue語句在循環(huán)控語句在循環(huán)控制語句的功能;能運用循環(huán)結(jié)構(gòu)語句進行一般的程序設(shè)計制語句的功能;能運用循環(huán)結(jié)構(gòu)語句進行一般的程序設(shè)計。教學(xué)內(nèi)容:教學(xué)內(nèi)容: 5.1 while5.1 while語句語句 5.2 do-w
2、hile5.2 do-while語句語句 5.3 for5.3 for語句語句 5.4 break5.4 break語句和語句和continuecontinue語句語句 5.5 5.5 循環(huán)嵌套結(jié)構(gòu)循環(huán)嵌套結(jié)構(gòu) 5.6 5.6 程序設(shè)計程序設(shè)計舉例舉例第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四2 2問題:問題:要求在屏幕上要求在屏幕上按行按行打印打印1 11010??刹捎每刹捎庙樞蚪Y(jié)構(gòu)順序結(jié)構(gòu)寫寫1010行代碼實現(xiàn)。行代碼實現(xiàn)。程序程序代碼如下:代碼如下:printf(%dn,1 );printf(%dn,1 );printf(%dn
3、,2 );printf(%dn,2 );printf(%dn,3 );printf(%dn,3 );printf(%dn,4 );printf(%dn,4 );printf(%dn,5 );printf(%dn,5 );printf(%dn,6 );printf(%dn,6 );printf(%dn,7 );printf(%dn,7 );printf(%dn,8 ); printf(%dn,8 ); printf(%dn,9 );printf(%dn,9 );printf(%dn,10 ); printf(%dn,10 ); int i=1;int i=1; printf(%dn, print
4、f(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%d
5、n,i i););i+;i+; printf(%dn,i); printf(%dn,i);修改為修改為第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四3 3問題:問題:要求在屏幕上要求在屏幕上按行按行打印打印1 11010。 int i=1;int i=1; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+
6、;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn, printf(%dn,i i););i+;i+; printf(%dn,i); printf(%dn,i);能否將重復(fù)的語句合并?能否將重復(fù)的語句合并?#includestdio.h#includestdio.hint main()int main() int i=1;
7、int i=1;whilewhile(i=10)(i=10) printf(%dn,i);printf(%dn,i); i+; i+; return 0;return 0; 第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四4 4循環(huán)語句的三種結(jié)構(gòu):循環(huán)語句的三種結(jié)構(gòu):一、當(dāng)型循環(huán)的一般形式:一、當(dāng)型循環(huán)的一般形式: whilewhile( (表達式表達式) )語句語句; ;二、直到型循環(huán)的一般形式:二、直到型循環(huán)的一般形式: do do 語句語句 while( while(表達式表達式););三、三、forfor循環(huán)語句的一般形式:循環(huán)語句
8、的一般形式: for( for(表達式表達式1;1;表達式表達式2;2;表達式表達式3)3) 語句;語句;2014.10.202014.10.201313建筑本建筑本3-43-46 6第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四5 55.1 while5.1 while語句語句1.while1.while語句的形式語句的形式while (while (表達式表達式) ) 循環(huán)體循環(huán)體 表達式:表達式:是是循環(huán)能進行的條件,可以是任何類型的,一般是關(guān)循環(huán)能進行的條件,可以是任何類型的,一般是關(guān)系表達式或邏輯表達式或其組合。系表達式或邏輯表
9、達式或其組合。循環(huán)體:循環(huán)體:是是重復(fù)執(zhí)行的程序段,可以是單條語句,也可以是復(fù)重復(fù)執(zhí)行的程序段,可以是單條語句,也可以是復(fù)合語句,若是復(fù)合語句,必須用一對花括號合語句,若是復(fù)合語句,必須用一對花括號“ ”括起來。括起來。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四6 62.while2.while語句的執(zhí)行過程語句的執(zhí)行過程首先計算表達式的值首先計算表達式的值,如果為真(非如果為真(非0 0),執(zhí)行循環(huán)體,再),執(zhí)行循環(huán)體,再判斷判斷表達式表達式。如果表達式的值為假(如果表達式的值為假(0 0),結(jié)束循環(huán),執(zhí)行),結(jié)束循環(huán),執(zhí)行whil
10、ewhile語語句后面的語句。句后面的語句。whilewhile語句的執(zhí)行流程圖如語句的執(zhí)行流程圖如下:下:whilewhile語句的特點語句的特點是是:先先判斷表達式,為真才執(zhí)行循環(huán)體語句判斷表達式,為真才執(zhí)行循環(huán)體語句,否則否則不執(zhí)行。不執(zhí)行。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四7 73.while3.while語句的應(yīng)用語句的應(yīng)用【例題【例題5.15.1】用用whilewhile語句求語句求1+2+3+1+2+3+100+100的和。的和。算法分析算法分析:程序分成程序分成3 3部分:初始化;求和;輸出部分:初始化;求和;
11、輸出步驟步驟1 1: sum=0sum=0;步驟步驟2.12.1: sum=sum+ sum=sum+1 1;步驟步驟2.22.2: sum=sum+ sum=sum+2 2;步驟步驟2.32.3: sum=sum+ sum=sum+3 3; 步驟步驟2.992.99: sum=sum+ sum=sum+9999;步驟步驟2.1002.100:sum=sum+sum=sum+100100;步驟步驟3 3:輸出:輸出sumsum步驟步驟1 1: sum=0 sum=0,i=1i=1;步驟步驟2.12.1: sum=sum+ sum=sum+i i;i+i+;步驟步驟2.22.2: sum=sum
12、+ sum=sum+i i;i+i+;步驟步驟2.32.3: sum=sum+ sum=sum+i i;i+i+; 步驟步驟2.992.99: sum=sum+ sum=sum+i i;i+i+;步驟步驟2.1002.100:sum=sum+sum=sum+i i;i+i+;步驟步驟3 3:輸出:輸出sumsum優(yōu)化優(yōu)化第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四8 8算法分析:算法分析:程序分成程序分成3 3部分:初始化;求和;輸出部分:初始化;求和;輸出步驟步驟1 1: 定義定義i=1i=1和和sum=0sum=0;步驟步驟2.12
13、.1: :若若i=100i100i100時時, ,結(jié)束求累加和。循環(huán)條件結(jié)束求累加和。循環(huán)條件是是i=100i100i100時時, ,結(jié)束求累加和。循環(huán)條件結(jié)束求累加和。循環(huán)條件是是i i=100=100即表達式即表達式2 2,表達式,表達式1 1就是對就是對變變量量i i賦的初值賦的初值1 1,循環(huán)體是求累加,循環(huán)體是求累加和和sum=sum+isum=sum+i。實現(xiàn)算法的流程圖如。實現(xiàn)算法的流程圖如圖圖所所示。示。程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四16 164.for4.for語句的變形語句的變形fo
14、rfor語句的變形語句的變形forfor語句中的表達式可以省略語句中的表達式可以省略,但分號不省略,但分號不省略forfor語句中的表達式可以語句中的表達式可以是逗號表達式是逗號表達式forfor語句中的語句中的循環(huán)體可以是空語句循環(huán)體可以是空語句for(for(sum=0, i=1sum=0, i=1; i=100; i+); i=100; i+)sum=sum+i;sum=sum+i;for(for(sum=0, i=1sum=0, i=1; i=100; ; i=100; sum+=i, i+)sum+=i, i+) ; ;省略表達式省略表達式1 1省略表達式省略表達式3 3省略表達式省
15、略表達式1 1和表達式和表達式3 3省略表達式省略表達式1 1、表達式表達式2 2和表達式和表達式3(3(如何控制循環(huán)如何控制循環(huán)) )第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四17 175.4 for5.4 for語句與語句與whilewhile語句和語句和do-whiledo-while語句比較語句比較3 3種循環(huán)結(jié)構(gòu)語句種循環(huán)結(jié)構(gòu)語句都能處理同樣都能處理同樣的問題,可以相互替換。其中的問題,可以相互替換。其中forfor語句語句主要用在主要用在循環(huán)次數(shù)循環(huán)次數(shù)已知情況下,已知情況下,whilewhile語句和語句和do-whil
16、edo-while語句語句一般用在循環(huán)一般用在循環(huán)次數(shù)次數(shù)在循環(huán)在循環(huán)過程過程中才能中才能確定確定的情形。的情形。whilewhile語句和語句和do-whiledo-while語句語句處理問題較相近,處理問題較相近, while while語句語句是是先判先判斷循環(huán)條件,后執(zhí)行循環(huán)體斷循環(huán)條件,后執(zhí)行循環(huán)體;do-whiledo-while語句語句是是先執(zhí)行循環(huán)體,先執(zhí)行循環(huán)體,后判斷循環(huán)條件。后判斷循環(huán)條件。forfor語句與語句與whilewhile語句和語句和do-whiledo-while語句語句,從,從形式形式上看有區(qū)別,但上看有區(qū)別,但本質(zhì)本質(zhì)是相同的。是相同的。forfor語句
17、與語句與whilewhile語句語句的執(zhí)行順序是相同的。的執(zhí)行順序是相同的。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四18 185.5 5.5 breakbreak語句與語句與continuecontinue語句語句程序中語句通常按語句功能所定義的方向執(zhí)行。現(xiàn)實中往往需程序中語句通常按語句功能所定義的方向執(zhí)行?,F(xiàn)實中往往需要改變程序的正常流向,則要改變程序的正常流向,則C C語言提供了輔助控制語句語言提供了輔助控制語句breakbreak語語句與句與continuecontinue語句。語句。5.5.1 5.5.1 breakbrea
18、k語句語句基本基本形式形式 breakbreak;功能功能:退出當(dāng)前循環(huán)或當(dāng)前退出當(dāng)前循環(huán)或當(dāng)前switchswitch結(jié)構(gòu),提前結(jié)束結(jié)構(gòu),提前結(jié)束本層本層循環(huán)或循環(huán)或本層本層switchswitch結(jié)構(gòu)結(jié)構(gòu)。只能只能在循環(huán)結(jié)構(gòu)內(nèi)和在循環(huán)結(jié)構(gòu)內(nèi)和switchswitch結(jié)構(gòu)內(nèi)使用結(jié)構(gòu)內(nèi)使用breakbreak語句,不得用于其語句,不得用于其他地方。作用是跳出當(dāng)前循環(huán)或他地方。作用是跳出當(dāng)前循環(huán)或當(dāng)前當(dāng)前switchswitch結(jié)構(gòu)結(jié)構(gòu)。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四19 19【例題【例題5.55.5】在全系在全系10001
19、000名學(xué)生中,征名學(xué)生中,征集慈善募捐集慈善募捐, ,當(dāng)募捐款達到當(dāng)募捐款達到1010萬元時就萬元時就停止募捐活動,統(tǒng)計此時捐款的人數(shù),停止募捐活動,統(tǒng)計此時捐款的人數(shù),以及平均每人捐款的數(shù)目。以及平均每人捐款的數(shù)目。算法分析算法分析:學(xué)生學(xué)生捐款是個累加過程但累加到捐款是個累加過程但累加到1010萬萬元元停止停止。這一過程中要處理。這一過程中要處理:學(xué)生捐款學(xué)生捐款數(shù)數(shù)、累加捐款數(shù)、判斷累加捐款數(shù)累加捐款數(shù)、判斷累加捐款數(shù)達到達到1010萬萬沒有沒有這這三件事即循環(huán)不變式。當(dāng)三件事即循環(huán)不變式。當(dāng)累加累加捐款捐款達到達到1010萬元,萬元,停止募捐活動即停止募捐活動即提前提前結(jié)束結(jié)束循環(huán)循
20、環(huán)。實現(xiàn)算法流程圖:。實現(xiàn)算法流程圖:程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四2020#include #define SUM 100000int main()float amount,aver,total; int i; for(i=1,total=0;i=SUM) break; aver=total / i ; printf(num=%dnaver=%10.2fn ,i,aver); return 0;please enter amount:12000please enter amount:24600plea
21、se enter amount:3200please enter amount:5643please enter amount:21900please enter amount:12345please enter amount:23000num=7aver=14669.71第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四21 215.5.2 continue5.5.2 continue語句語句基本基本形式:形式: continue continue;功能功能:continuecontinue語句作用是語句作用是結(jié)束本次結(jié)束本次循環(huán)即跳過本次
22、循環(huán)體中其余未執(zhí)行循環(huán)即跳過本次循環(huán)體中其余未執(zhí)行的語句,的語句,提前提前進行進行下一次下一次循環(huán)。循環(huán)。continuecontinue語句只能用在語句只能用在forfor、whilewhile和和do-whiledo-while循環(huán)體中,常與循環(huán)體中,常與ifif語句一起語句一起使用,用來加速循環(huán)使用,用來加速循環(huán)?!纠}例題5.65.6】編寫程序:求編寫程序:求100100200200之之間的不能被間的不能被3 3整除的數(shù),并按每行整除的數(shù),并按每行1010個個數(shù)的格式輸出數(shù)的格式輸出。算法分析算法分析:n%3n%3,為為0 0,不輸出用不輸出用continuecontinue實現(xiàn);不為
23、實現(xiàn);不為0 0輸出用輸出用printfprintf實實現(xiàn)。實現(xiàn)算法流程圖現(xiàn)。實現(xiàn)算法流程圖:程序代碼:程序代碼:#include stdio.h#include stdio.hvoid mainvoid main( )( ) int n;int n; for(n=100;n=200;nfor(n=100;n=200;n+)+) if if(n%3=0) (n%3=0) printf(n);continue;printf(n);continue; printf(%5d,n); printf(%5d,n); 2014.11.32014.11.31313建筑本建筑本3-43-47 7第第5 5章章
24、 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四22225.5.3 5.5.3 breakbreak語句和語句和continuecontinue語句的區(qū)別語句的區(qū)別continuecontinue語句只結(jié)束本次循環(huán),語句只結(jié)束本次循環(huán),然后進行下一次循環(huán)然后進行下一次循環(huán);breakbreak:退出包含它的那一層循環(huán)。:退出包含它的那一層循環(huán)。說明:說明:breakbreak和和continuecontinue語句一般和語句一般和ifif語句聯(lián)合使用,若在循語句聯(lián)合使用,若在循環(huán)體內(nèi)單獨使用將無任環(huán)體內(nèi)單獨使用將無任何意義。何意義。#include st
25、dio.h#include stdio.hvoid mainvoid main( )( ) int n;int n; for(n=100;n=200;nfor(n=100;n=200;n+)+) if if(n%3=0) (n%3=0) printf(nprintf(n);break;);break; printf(%5d,n); printf(%5d,n); 第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四23235.6 5.6 循環(huán)的嵌套結(jié)構(gòu)循環(huán)的嵌套結(jié)構(gòu)循環(huán)循環(huán)的嵌套是指在一個循環(huán)體內(nèi)又包含一個或幾個的循環(huán)體結(jié)的嵌套是指在一個循環(huán)體內(nèi)
26、又包含一個或幾個的循環(huán)體結(jié)構(gòu)的形式。一般來說有構(gòu)的形式。一般來說有雙重循環(huán)嵌套雙重循環(huán)嵌套和和多重循環(huán)嵌套多重循環(huán)嵌套。whilewhile、do-whiledo-while、forfor三種循環(huán)可相互嵌套,也可是自己的嵌套。內(nèi)循三種循環(huán)可相互嵌套,也可是自己的嵌套。內(nèi)循環(huán)必須被包含在外循環(huán)體之內(nèi)環(huán)必須被包含在外循環(huán)體之內(nèi),不,不允許出現(xiàn)交叉現(xiàn)象。同學(xué)們允許出現(xiàn)交叉現(xiàn)象。同學(xué)們分析下列循環(huán)嵌套結(jié)構(gòu)的合法性。分析下列循環(huán)嵌套結(jié)構(gòu)的合法性。whilewhiledodoWhile While forforforforforfordodowhilewhile 合法合法 合法合法 非法(交叉)非法(交叉
27、)第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四24245.6.1 5.6.1 雙重循環(huán)的嵌套雙重循環(huán)的嵌套雙重循環(huán)即只有兩層循環(huán):內(nèi)循環(huán)和外循環(huán)。雙重循環(huán)的執(zhí)行雙重循環(huán)即只有兩層循環(huán):內(nèi)循環(huán)和外循環(huán)。雙重循環(huán)的執(zhí)行過程過程是:首先從外層循環(huán)開始執(zhí)行,外層循環(huán)每執(zhí)行一次,暫是:首先從外層循環(huán)開始執(zhí)行,外層循環(huán)每執(zhí)行一次,暫停,轉(zhuǎn)去執(zhí)行內(nèi)層循環(huán),內(nèi)層循環(huán)要將停,轉(zhuǎn)去執(zhí)行內(nèi)層循環(huán),內(nèi)層循環(huán)要將所有規(guī)定所有規(guī)定的循環(huán)次數(shù)的循環(huán)次數(shù)全全部部執(zhí)行完畢,返回外層循環(huán),外層循環(huán)才能開始下一次循環(huán),執(zhí)行完畢,返回外層循環(huán),外層循環(huán)才能開始下一次循環(huán),依此
28、類推依此類推第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四25251.1.外層循環(huán)變量與內(nèi)層循環(huán)變量相互獨立外層循環(huán)變量與內(nèi)層循環(huán)變量相互獨立【例題【例題5.75.7】 編寫程序:輸出以下編寫程序:輸出以下4 45 5的矩陣。的矩陣。1 2 3 4 51 2 3 4 52 4 6 8 102 4 6 8 103 6 9 12 153 6 9 12 154 8 12 16 204 8 12 16 20算法分析:算法分析:定義兩個變量定義兩個變量i,ji,j分別控制行,列。分別控制行,列。輸出輸出1 1行后,回車再輸出下行后,回車再輸出下1
29、1行,在輸出行的過行,在輸出行的過程中又要輸出程中又要輸出5 5列的元素值,列的元素值,每個元素值每個元素值= =元素元素所在行值所在行值* *元素所在列值元素所在列值。因此。因此外外循環(huán)控制循環(huán)控制行行,內(nèi)內(nèi)循環(huán)控制循環(huán)控制列列。實現(xiàn)算法流程圖:。實現(xiàn)算法流程圖:程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四2626#include int main()int i,j,n=0;for (i=1;i=4;i+) for (j=1;j=5;j+,n+) if (n%5=0) printf (n); printf (%dt
30、,i*j); printf(n);return 0;iji*jn11102213324435546521224636748851096103132611391241213515146154142816312174161852019第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四2727【例題例題5.85.8】設(shè)計輸出如下九九乘法表的程序。設(shè)計輸出如下九九乘法表的程序。算法分析算法分析: :乘法表共乘法表共9 9行行, ,第第n n行就有行就有n n個式子個式子, ,每個式子與所在行每個式子與所在行, ,列有關(guān)。列有關(guān)。#include st
31、dio.h#include stdio.hint main( )int main( ) int i,j;int i,j;for(i=1;i=9;i+)for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%dfor(j=1;j=i;j+) printf(%d* *%d=%d, ,j,i,j%d=%d, ,j,i,j* *i);i);printf(n);printf(n); return 0;return 0; i ji*j1 11*1=12 1,21*2=2,2*2=43 1,2,31*3=3,2*3=6,3*3=94 1,2,3,41*4=4,2*4=8,3*4=12
32、,4*4=165 1,2,3,4,51*5=5,2*5=10,3*5=15,4*5=20,5*5=256 1,2,3,4,5,61*6=6,2*6=12,3*6=18,4*6=24,5*6=30,6*6=36,7 1,2,3,4,5,6,71*7=7,2*7=14,3*7=21,4*7=28,5*7=35,6*7=42,7*7=498 1,2,3,4,5,6,7,81*8=8,2*8=16,3*8=24,4*8=32,5*8=40,6*8=48,7*8=56,8*8=649 1,2,3,4,5,6,7,8,91*9=9,2*9-18,3*9=27,4*9=36,5*9=45,6*9=54,7*
33、9=63,8*9=72,9*9=81第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四28285.6.2 5.6.2 多重循環(huán)的嵌套多重循環(huán)的嵌套多重循環(huán)是指兩層及兩層以上的循環(huán)結(jié)構(gòu)。多重循環(huán)是指兩層及兩層以上的循環(huán)結(jié)構(gòu)?!纠}例題5.95.9】編寫程序:編寫程序:用用1 1、2 2、3 3、4 4四個四個數(shù)字?jǐn)?shù)字, ,能能組成多少個組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?并按每行互不相同且無重復(fù)數(shù)字的三位數(shù)?并按每行1010個輸出個輸出。算法分析算法分析:組成的三位數(shù)的百位、十位、個組成的三位數(shù)的百位、十位、個位分位分別是給定的四別是給定的
34、四個數(shù)中之一個數(shù)中之一。可??啥x表示百位、十位和個位的變量分別是定義表示百位、十位和個位的變量分別是i,j,ki,j,k, ,它們它們的的取值分別取值分別是是1 1到到4 4中其一,但它們互不相等。這種算法稱中其一,但它們互不相等。這種算法稱窮舉法窮舉法或或測試法測試法。程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四2929有有1 1、2 2、3 3、4 4四個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字四個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù),并輸出它們的結(jié)果。的三位數(shù),并輸出它們的結(jié)果。算法分析:算法分析:填
35、在百位、十位、個位的填在百位、十位、個位的數(shù)字?jǐn)?shù)字由由1 1、2 2、3 3、4 4組成,組成,可設(shè)三個變量;可設(shè)三個變量;i i表示百位,表示百位,j j表示十位表示十位,k,k表示個位,它們分別取表示個位,它們分別取值從值從1-41-4,通過循環(huán),通過循環(huán)列出所有可能的組合。列出所有可能的組合。#include stdio.h#include stdio.hint main( )int main( ) int i,j,k;int i,j,k;for(i=1;i5;i+)for(i=1;i5;i+)for(j=1;j5;j+)for(j=1;j5;j+)forfor(k=1;k5;k+)(k
36、=1;k=1e-6)(fabs(t) =1e-6) pi=pi+t; n=n+2;s=-s; pi=pi+t; n=n+2;s=-s; t=s/n;t=s/n; pi=pipi=pi* *4; 4; printf(pi=%10.6fn,pi);printf(pi=%10.6fn,pi); 運行結(jié)果運行結(jié)果: : pi=3.141397 pi=3.141397第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四3232【例題【例題5.125.12】編寫程序編寫程序: :通過鍵盤輸入任意通過鍵盤輸入任意一個整數(shù),要求反序輸出該整數(shù)。一個整數(shù),要求反
37、序輸出該整數(shù)。算法分析:算法分析:如果輸入一個如果輸入一個1234512345,則要求,則要求反序輸出反序輸出5432154321,可采用下列方法實現(xiàn)。,可采用下列方法實現(xiàn)。第第1 1步:步:12345%10=5 12345/10=123412345%10=5 12345/10=1234第第2 2步:步:1234%10 =4 1234/10=1231234%10 =4 1234/10=123第第3 3步:步:123%10 =3 123/10=12123%10 =3 123/10=12第第4 4步:步:12%10 =2 12/10=112%10 =2 12/10=1第第5 5步:步:1%10 =
38、1 1/10=01%10 =1 1/10=0通過通過5 5步就可以將一個步就可以將一個5 5位數(shù)拆分開來,并位數(shù)拆分開來,并且每一步所做操作相同即先且每一步所做操作相同即先除除1010取余取余,然,然后再后再除除1010取整取整,這就是,這就是循環(huán)不變式循環(huán)不變式,到第,到第5 5步整除步整除1010結(jié)果為結(jié)果為0 0時,所有的數(shù)拆分完,時,所有的數(shù)拆分完,說明循環(huán)能說明循環(huán)能進行的條件是被進行的條件是被1010整除的數(shù)不整除的數(shù)不為為0 0。程序代碼:程序代碼:7 72014.11.52014.11.51313建筑本建筑本3-43-48 8第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20222022年年4 4月月2828日星期四日星期四3333#include #include int main()int main()int n1,n2; int n1,n2; printf(input to n2n);printf(input to n2n);scanf(%d,&n2);scanf(%d,&n2);while(n2!=0)while(n2!=0)n1=n2%10; n
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度xyz與pqr就智慧城市解決方案的合作合同
- 建筑工程施工補充合同
- 2024年度南京二手房買賣合同
- 2024店鋪商鋪租賃合同范本
- 合伙開店合同:共同經(jīng)營店鋪協(xié)議書樣本
- 承攬合同與雇傭合同的實質(zhì)區(qū)別
- 工程合同風(fēng)險管理
- 專業(yè)勞務(wù)派遣合同協(xié)議
- 招商引資協(xié)議案例
- 2024年水電工承包合同范本
- 現(xiàn)代交換原理與通信網(wǎng)技
- 全科醫(yī)生臨床常見病門急診病歷模板(范例)
- GH/T 1421-2023野生食用菌保育促繁技術(shù)規(guī)程塊菌(松露)
- 商業(yè)綜合體停車收費管理詳細(xì)規(guī)定
- 健康管理專業(yè)職業(yè)生涯規(guī)劃書
- 《佛山市鋁灰渣處理處置環(huán)境管理指南》
- 滑膜炎的知識宣教
- 第23課《孟子三章富貴不能淫》課件(共22張)語文八年級上冊
- 合理用藥軟件系統(tǒng)建設(shè)方案
- Unit4Whatcanyoudo-PartBLetslearn(課件)人教PEP版英語五年級上冊
- 個人信息保護法教程全套教學(xué)課件
評論
0/150
提交評論