版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六1 1第第5 5章章 循環(huán)構(gòu)造程序設(shè)計循環(huán)構(gòu)造程序設(shè)計教學(xué)要求:教學(xué)要求: 經(jīng)過本章的學(xué)習(xí)要求學(xué)生掌握循環(huán)構(gòu)造的三經(jīng)過本章的學(xué)習(xí)要求學(xué)生掌握循環(huán)構(gòu)造的三種語句的根本語法及循環(huán)執(zhí)行過程;掌握種語句的根本語法及循環(huán)執(zhí)行過程;掌握breakbreak語語句和句和continuecontinue語句在循環(huán)控制語句的功能;能運用語句在循環(huán)控制語句的功能;能運用循環(huán)構(gòu)造語句進(jìn)展普通的程序設(shè)計。循環(huán)構(gòu)造語句進(jìn)展普通的程序設(shè)計。教學(xué)內(nèi)容:教學(xué)內(nèi)容: 5.1 while 5.1 while語句語句 5.2
2、 do-while 5.2 do-while語句語句 5.3 for 5.3 for語句語句 5.4 break 5.4 break語句和語句和continuecontinue語句語句 5.5 5.5 循環(huán)嵌套構(gòu)造循環(huán)嵌套構(gòu)造 5.6 5.6 程序設(shè)計舉例程序設(shè)計舉例第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六2 2問題:要求在屏幕上按行打印問題:要求在屏幕上按行打印1 11010??刹捎庙樞驑?gòu)造寫可采用順序構(gòu)造寫1010行代碼實現(xiàn)。程序代碼如下:行代碼實現(xiàn)。程序代碼如下:printf(%dn,1 );printf(%dn,1 )
3、;printf(%dn,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; print
4、f(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+;
5、 printf(%dn,i);i+; printf(%dn,i); printf(%dn,i);修正為修正為第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六3 3問題:要求在屏幕上按行打印問題:要求在屏幕上按行打印1 11010。 int i=1; int i=1; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn
6、,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i);i+; printf(%dn,i); printf(%dn,i);能否將反復(fù)的語句合并?能否將反復(fù)的語句合并?#includestdio.h#includestdio.hint main()int main() int i=1;in
7、t i=1;while(i=10)while(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è)計20212021年年11 11月月13 13日星期六日星期六4 4循環(huán)語句的三種構(gòu)造:循環(huán)語句的三種構(gòu)造:一、當(dāng)型循環(huán)的普通方式:一、當(dāng)型循環(huán)的普通方式: while( while(表達(dá)式表達(dá)式) )語句語句; ;二、直到型循環(huán)的普通方式:二、直到型循環(huán)的普通方式: do do 語句語句 while( while(表達(dá)式表達(dá)式););三、三、forfor循環(huán)語句的普通方式:循環(huán)
8、語句的普通方式: for( for(表達(dá)式表達(dá)式1;1;表達(dá)式表達(dá)式2;2;表達(dá)式表達(dá)式3)3) 語句;語句;2021.10.202021.10.201313建筑本建筑本3-43-46 6第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六5 55.1 while5.1 while語句語句1.while1.while語句的方式語句的方式while (while (表達(dá)式表達(dá)式) ) 循環(huán)體循環(huán)體 表達(dá)式:是循環(huán)能進(jìn)展的條件,可以是任表達(dá)式:是循環(huán)能進(jìn)展的條件,可以是任何類型的,普通是關(guān)系表達(dá)式或邏輯表達(dá)何類型的,普通是關(guān)系表達(dá)式或邏輯表達(dá)
9、式或其組合。式或其組合。循環(huán)體:是反復(fù)執(zhí)行的程序段,可以是單循環(huán)體:是反復(fù)執(zhí)行的程序段,可以是單條語句,也可以是復(fù)合語句,假設(shè)是復(fù)合條語句,也可以是復(fù)合語句,假設(shè)是復(fù)合語句,必需用一對花括號語句,必需用一對花括號“ “ 括起來。括起來。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六6 62.while2.while語句的執(zhí)行過程語句的執(zhí)行過程首先計算表達(dá)式的值,假設(shè)為真非首先計算表達(dá)式的值,假設(shè)為真非0 0,執(zhí)行循環(huán)體,再判別,執(zhí)行循環(huán)體,再判別表達(dá)式。假設(shè)表達(dá)式的值為假表達(dá)式。假設(shè)表達(dá)式的值為假0 0,終了循環(huán),執(zhí)行,終了循環(huán),執(zhí)
10、行whilewhile語語句后面的語句。句后面的語句。whilewhile語句的執(zhí)行流程圖如下:語句的執(zhí)行流程圖如下:whilewhile語句的特點是:語句的特點是:先判別表達(dá)式,為真才執(zhí)行循環(huán)體語句,先判別表達(dá)式,為真才執(zhí)行循環(huán)體語句,否那么不執(zhí)行。否那么不執(zhí)行。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六7 73.while3.while語句的運用語句的運用【例題【例題5.15.1】用】用whilewhile語句求語句求1+2+3+1001+2+3+100的和。的和。算法分析:程序分成算法分析:程序分成3 3部分:初始化;求和
11、;輸出部分:初始化;求和;輸出步驟步驟1 1: sum=0 sum=0;步驟步驟2.12.1: sum=sum+1 sum=sum+1;步驟步驟2.22.2: sum=sum+2 sum=sum+2;步驟步驟2.32.3: sum=sum+3 sum=sum+3; 步驟步驟2.992.99: sum=sum+99 sum=sum+99;步驟步驟2.1002.100:sum=sum+100sum=sum+100;步驟步驟3 3:輸出:輸出sumsum步驟步驟1 1: sum=0 sum=0,i=1i=1;步驟步驟2.12.1: sum=sum+i sum=sum+i;i+i+;步驟步驟2.22.
12、2: sum=sum+i sum=sum+i;i+i+;步驟步驟2.32.3: sum=sum+i sum=sum+i;i+i+; 步驟步驟2.992.99: sum=sum+i sum=sum+i;i+i+;步驟步驟2.1002.100:sum=sum+isum=sum+i;i+i+;步驟步驟3 3:輸出:輸出sumsum優(yōu)化優(yōu)化第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六8 8算法分析:程序分成算法分析:程序分成3 3部分:初始化;求和;輸出部分:初始化;求和;輸出步驟步驟1 1: 定義定義i=1i=1和和sum=0sum=0
13、;步驟步驟2.1:2.1:假設(shè)假設(shè)i=100,i100i100時時, ,終了求累加和。循環(huán)條件終了求累加和。循環(huán)條件是是i=100i100i100時時, ,終了求累加和。循環(huán)條件是終了求累加和。循環(huán)條件是i=100i=100即表達(dá)式即表達(dá)式2 2,表達(dá)式,表達(dá)式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è)計20212021年年11 11月月13 13日星期六日星期六16 164.for4.fo
14、r語句的變形語句的變形forfor語句的變形語句的變形forfor語句中的表達(dá)式可以省略,但分號不省略語句中的表達(dá)式可以省略,但分號不省略forfor語句中的表達(dá)式可以是逗號表達(dá)式語句中的表達(dá)式可以是逗號表達(dá)式forfor語句中的循環(huán)體可以是空語句語句中的循環(huán)體可以是空語句for(sum=0, i=1; i=100; i+)for(sum=0, i=1; i=100; i+)sum=sum+i;sum=sum+i;for(sum=0, i=1; i=100; sum+=i, i+)for(sum=0, i=1; i=100; sum+=i, i+) ; ;省略表達(dá)式省略表達(dá)式1 1省略表達(dá)式省
15、略表達(dá)式3 3省略表達(dá)式省略表達(dá)式1 1和表達(dá)式和表達(dá)式3 3省略表達(dá)式省略表達(dá)式1 1、表達(dá)式、表達(dá)式2 2和表達(dá)式和表達(dá)式3(3(如何控制循環(huán)如何控制循環(huán)) )第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六17 175.4 for5.4 for語句與語句與whilewhile語句和語句和do-whiledo-while語句比較語句比較3 3種循環(huán)構(gòu)造語句都能處置同樣的問題,可以相互交換。其中種循環(huán)構(gòu)造語句都能處置同樣的問題,可以相互交換。其中forfor語句主要用在循環(huán)次數(shù)知情況下,語句主要用在循環(huán)次數(shù)知情況下,whilewhi
16、le語句和語句和do-whiledo-while語語句普通用在循環(huán)次數(shù)在循環(huán)過程中才干確定的情形。句普通用在循環(huán)次數(shù)在循環(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ì)是一樣的
17、。本質(zhì)是一樣的。forfor語句與語句與whilewhile語句的執(zhí)行順序是一樣的。語句的執(zhí)行順序是一樣的。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六18 185.5 break5.5 break語句與語句與continuecontinue語句語句程序中語句通常按語句功能所定義的方向執(zhí)行?,F(xiàn)實程序中語句通常按語句功能所定義的方向執(zhí)行?,F(xiàn)實中往往需求改動程序的正常流向,那么中往往需求改動程序的正常流向,那么C C言語提供了輔言語提供了輔助控制語句助控制語句breakbreak語句與語句與continuecontinue語句。語句。
18、5.5.1 break5.5.1 break語句語句根本方式根本方式 break break;功能:退出當(dāng)前循環(huán)或當(dāng)前功能:退出當(dāng)前循環(huán)或當(dāng)前switchswitch構(gòu)造,提早終了本構(gòu)造,提早終了本層循環(huán)或本層層循環(huán)或本層switchswitch構(gòu)造。構(gòu)造。只能在循環(huán)構(gòu)造內(nèi)和只能在循環(huán)構(gòu)造內(nèi)和switchswitch構(gòu)造內(nèi)運用構(gòu)造內(nèi)運用breakbreak語句,不語句,不得用于其他地方。作用是跳出當(dāng)前循環(huán)或當(dāng)前得用于其他地方。作用是跳出當(dāng)前循環(huán)或當(dāng)前switchswitch構(gòu)造。構(gòu)造。第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六1
19、9 19【例題【例題5.55.5】在全系】在全系10001000名學(xué)生中,征名學(xué)生中,征集慈悲募捐集慈悲募捐, ,當(dāng)募捐款到達(dá)當(dāng)募捐款到達(dá)1010萬元時就萬元時就停頓募捐活動,統(tǒng)計此時捐款的人數(shù),停頓募捐活動,統(tǒng)計此時捐款的人數(shù),以及平均每人捐款的數(shù)目。算法分析:以及平均每人捐款的數(shù)目。算法分析:學(xué)生捐款是個累加過程但累加到學(xué)生捐款是個累加過程但累加到1010萬元萬元停頓。這一過程中要處置:學(xué)生捐款數(shù)停頓。這一過程中要處置:學(xué)生捐款數(shù)、累加捐款數(shù)、判別累加捐款數(shù)到達(dá)、累加捐款數(shù)、判別累加捐款數(shù)到達(dá)1010萬沒有這三件事即循環(huán)不變式。當(dāng)累加萬沒有這三件事即循環(huán)不變式。當(dāng)累加捐款到達(dá)捐款到達(dá)101
20、0萬元,停頓募捐活動即提早萬元,停頓募捐活動即提早終了循環(huán)。實現(xiàn)算法流程圖:終了循環(huán)。實現(xiàn)算法流程圖:程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六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
21、:12000please enter amount:24600please 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è)計20212021年年11 11月月13 13日星期六日星期六21 215.5.2 continue5.5.2 continue語句語句根本方式:根本方式: continue continue;功能:功能:co
22、ntinuecontinue語句作用是終了本次語句作用是終了本次循環(huán)即跳過本次循環(huán)體中其他未執(zhí)行循環(huán)即跳過本次循環(huán)體中其他未執(zhí)行的語句,提早進(jìn)展下一次循環(huán)。的語句,提早進(jì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ù)的格式輸出。算法分析:算法分
23、析:n%3n%3,為,為0 0,不輸出用,不輸出用continuecontinue實現(xiàn);不為實現(xiàn);不為0 0輸出用輸出用printfprintf實實現(xiàn)。實現(xiàn)算法流程圖:現(xiàn)。實現(xiàn)算法流程圖:程序代碼:程序代碼:#include stdio.h#include stdio.hvoid main( )void main( )int n;int n; for(n=100;n=200;n+) for(n=100;n=200;n+) if(n%3=0) if(n%3=0) printf(n);continue; printf(n);continue; printf(%5d,n); printf(%5d,n
24、); 2021.11.32021.11.31313建筑本建筑本3-43-47 7第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六22225.5.3 break5.5.3 break語句和語句和continuecontinue語句的區(qū)別語句的區(qū)別continuecontinue語句只終了本次循環(huán),然后進(jìn)展下一次循環(huán);語句只終了本次循環(huán),然后進(jìn)展下一次循環(huán);breakbreak:退出包含它的那一層循環(huán)。:退出包含它的那一層循環(huán)。闡明:闡明:breakbreak和和continuecontinue語句普通和語句普通和ifif語句結(jié)合運用,假
25、設(shè)在語句結(jié)合運用,假設(shè)在循環(huán)體內(nèi)單獨運用將無循環(huán)體內(nèi)單獨運用將無任何意義。任何意義。#include stdio.h#include stdio.hvoid main( )void main( )int n;int n; for(n=100;n=200;n+) for(n=100;n=200;n+) if(n%3=0) if(n%3=0) printf(n);break; printf(n);break; printf(%5d,n); printf(%5d,n); 第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六23235.6 5.6
26、 循環(huán)的嵌套構(gòu)造循環(huán)的嵌套構(gòu)造循環(huán)的嵌套是指在一個循環(huán)體內(nèi)又包含一個或循環(huán)的嵌套是指在一個循環(huán)體內(nèi)又包含一個或幾個的循環(huán)體構(gòu)造的方式。普通來說有雙重循幾個的循環(huán)體構(gòu)造的方式。普通來說有雙重循環(huán)嵌套和多重循環(huán)嵌套。環(huán)嵌套和多重循環(huán)嵌套。whilewhile、do-whiledo-while、forfor三種循環(huán)可相互嵌套,也可是本人的嵌套。三種循環(huán)可相互嵌套,也可是本人的嵌套。內(nèi)循環(huán)必需被包含在外循環(huán)體之內(nèi),不允許出內(nèi)循環(huán)必需被包含在外循環(huán)體之內(nèi),不允許出現(xiàn)交叉景象。同窗們分析以下循環(huán)嵌套構(gòu)造的現(xiàn)交叉景象。同窗們分析以下循環(huán)嵌套構(gòu)造的合法性。合法性。whilewhiledodoWhile Whi
27、le forforforforforfordodowhilewhile 合法合法 合法合法 非法交叉非法交叉第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六24245.6.1 5.6.1 雙重循環(huán)的嵌套雙重循環(huán)的嵌套雙重循環(huán)即只需兩層循環(huán):內(nèi)循環(huán)和外循環(huán)。雙重循環(huán)即只需兩層循環(huán):內(nèi)循環(huán)和外循環(huán)。雙重循環(huán)的執(zhí)行過程是:首先從外層循環(huán)開場雙重循環(huán)的執(zhí)行過程是:首先從外層循環(huán)開場執(zhí)行,外層循環(huán)每執(zhí)行一次,暫停,轉(zhuǎn)去執(zhí)行執(zhí)行,外層循環(huán)每執(zhí)行一次,暫停,轉(zhuǎn)去執(zhí)行內(nèi)層循環(huán),內(nèi)層循環(huán)要將一切規(guī)定的循環(huán)次數(shù)內(nèi)層循環(huán),內(nèi)層循環(huán)要將一切規(guī)定的循環(huán)次數(shù)全部
28、執(zhí)行終了,前往外層循環(huán),外層循環(huán)才干全部執(zhí)行終了,前往外層循環(huán),外層循環(huán)才干開場下一次循環(huán),依此類推開場下一次循環(huán),依此類推第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六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算法分析:定義兩個變量算
29、法分析:定義兩個變量i,ji,j分別控制行,列。分別控制行,列。輸出輸出1 1行后,回車再輸出下行后,回車再輸出下1 1行,在輸出行的過行,在輸出行的過程中又要輸出程中又要輸出5 5列的元素值,每個元素值列的元素值,每個元素值= =元素元素所在行值所在行值* *元素所在列值。因此外循環(huán)控制行,元素所在列值。因此外循環(huán)控制行,內(nèi)循環(huán)控制列。實現(xiàn)算法流程圖:內(nèi)循環(huán)控制列。實現(xiàn)算法流程圖:程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六2626#include int main()int i,j,n=0;for (i=1
30、;i=4;i+) for (j=1;j=5;j+,n+) if (n%5=0) printf (n); printf (%dt,i*j); printf(n);return 0;iji*jn11102213324435546521224636748851096103132611391241213515146154142816312174161852019第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六2727【例題【例題5.85.8】設(shè)計輸出如下九九乘法表的程序?!吭O(shè)計輸出如下九九乘法表的程序。算法分析算法分析: :乘法表共乘法表共9
31、 9行行, ,第第n n行就有行就有n n個式子個式子, ,每個式每個式子與所在行子與所在行, ,列有關(guān)。列有關(guān)。#include stdio.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, %d=%d, ,j,i,j,j,i,j* *i);i);printf(n); printf(n); return 0;return 0; i ji*j1 11*1=1
32、2 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,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
33、*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*9=63,8*9=72,9*9=81第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六28285.6.2 5.6.2 多重循環(huán)的嵌套多重循環(huán)的嵌套多重循環(huán)是指兩層及兩層以上的循環(huán)構(gòu)造。多重循環(huán)是指兩層及兩層以上的循環(huán)構(gòu)造?!纠}【例題5.95.9】編寫程序:用】編寫程序:用1 1、2 2、3 3、4 4四個數(shù)字四個數(shù)字, ,能組成多少個互不一樣且無反復(fù)數(shù)字的三位數(shù)?能組成多少個互不一樣且無反復(fù)數(shù)字的三位數(shù)
34、?并按每行并按每行1010個輸出。個輸出。算法分析:組成的三位數(shù)的百位、十位、個位算法分析:組成的三位數(shù)的百位、十位、個位分別是給定的四個數(shù)中之一??啥x表示百位、分別是給定的四個數(shù)中之一。可定義表示百位、十位和個位的變量分別是十位和個位的變量分別是i,j,k,i,j,k,它們的取值分它們的取值分別是別是1 1到到4 4中其一,但它們互不相等。這種算法中其一,但它們互不相等。這種算法稱窮舉法或測試法。稱窮舉法或測試法。程序代碼:程序代碼:第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六2929有有1 1、2 2、3 3、4 4四個數(shù)字
35、,能組成多少個互不一樣且無反復(fù)數(shù)字四個數(shù)字,能組成多少個互不一樣且無反復(fù)數(shù)字的三位數(shù),并輸出它們的結(jié)果。的三位數(shù),并輸出它們的結(jié)果。算法分析:填在百位、十位、個位的數(shù)字由算法分析:填在百位、十位、個位的數(shù)字由1 1、2 2、3 3、4 4組成,組成,可設(shè)三個變量;可設(shè)三個變量;i i表示百位,表示百位,j j表示十位表示十位,k,k表示個位,它們分別取表示個位,它們分別取值從值從1-41-4,經(jīng)過循環(huán)列出一切能夠的組合。,經(jīng)過循環(huán)列出一切能夠的組合。#include stdio.h#include stdio.hint main( )int main( )int i,j,k;int i,j,k
36、;for(i=1;i5;i+)for(i=1;i5;i+)for(j=1;j5;j+)for(j=1;j5;j+)for(k=1;k5;k+)for(k=1;k=1e-6)while(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); 運轉(zhuǎn)結(jié)果運轉(zhuǎn)結(jié)果: : pi=3.147 pi=3.147第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日
37、星期六日星期六3232【例題【例題5.125.12】編寫程序】編寫程序: :經(jīng)過鍵盤輸入恣意經(jīng)過鍵盤輸入恣意一個整數(shù),要求反序輸出該整數(shù)。一個整數(shù),要求反序輸出該整數(shù)。算法分析:假設(shè)輸入一個算法分析:假設(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/1
38、0=12123%10 =3 123/10=12第第4 4步:步:12%10 =2 12/10=112%10 =2 12/10=1第第5 5步:步:1%10 =1 1/10=01%10 =1 1/10=0經(jīng)過經(jīng)過5 5步就可以將一個步就可以將一個5 5位數(shù)拆分開來,并位數(shù)拆分開來,并且每一步所做操作一樣即先除且每一步所做操作一樣即先除1010取余,然取余,然后再除后再除1010取整,這就是循環(huán)不變式,到第取整,這就是循環(huán)不變式,到第5 5步整除步整除1010結(jié)果為結(jié)果為0 0時,一切的數(shù)拆分完,時,一切的數(shù)拆分完,闡明循環(huán)能進(jìn)展的條件是被闡明循環(huán)能進(jìn)展的條件是被1010整除的數(shù)不整除的數(shù)不為為0 0。程序代碼:程序代碼:7 72021.11.52021.11.51313建筑本建筑本3-43-48 8第第5 5章章 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計20212021年年11 11月月13 13日星期六日星期六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;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年第三方擔(dān)保服務(wù)協(xié)議版B版
- 2024年送貨員崗位長期聘用協(xié)議
- 2025年度綠色數(shù)據(jù)中心通風(fēng)空調(diào)系統(tǒng)安裝勞務(wù)分包合同3篇
- 二零二五年度體育產(chǎn)業(yè)股東出資合作協(xié)議3篇
- 二零二五年度文化創(chuàng)意產(chǎn)品借款續(xù)借及品牌推廣合同3篇
- 2024年返聘生產(chǎn)supervisor協(xié)議3篇
- 2024版房屋買賣預(yù)約合同
- 2025年度生態(tài)旅游項目融資咨詢與生態(tài)保護(hù)規(guī)劃合同3篇
- 2025年度環(huán)保節(jié)能木模板購銷及回收利用合同3篇
- 2024版勞動合同社保購買政策問答
- 應(yīng)收帳款管理辦法
- 食品安全分享
- 跨境代運營合同范例
- 水利水電工程驗收實施細(xì)則模版(3篇)
- 四川雅安文化旅游集團(tuán)有限責(zé)任公司招聘筆試沖刺題2024
- 造價框架協(xié)議合同范例
- 2024-2025學(xué)年 語文二年級上冊 部編版期末測試卷 (含答案)
- 無人機(jī)飛行安全協(xié)議書
- 山西省晉中市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
- DB34T4912-2024二手新能源汽車鑒定評估規(guī)范
- 《商務(wù)溝通(第二版)》 課件全套 第1-4章 商務(wù)溝通概論 -商務(wù)溝通實務(wù)
評論
0/150
提交評論