資源描述:
《《C語(yǔ)言循環(huán)結(jié)構(gòu)》PPT課件》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、循環(huán)程序設(shè)計(jì)(2)1.break語(yǔ)句break語(yǔ)句和continue(1)語(yǔ)句形式:break;(2)作用:結(jié)束break所在的switch語(yǔ)句。結(jié)束當(dāng)前循環(huán),跳出break所在的循環(huán)結(jié)構(gòu)?!纠?:】求300以?xún)?nèi)能被17整除的最大的數(shù)。找到滿(mǎn)足條件的最大數(shù),結(jié)束循環(huán)#include"stdio.h"voidmain(){intx;for(x=300;x>=17;x--)if(x%17==0)break;printf("x=%d",x);}【例8】求300以?xún)?nèi)能被17整除的所有整數(shù)。#include"stdio.h"voidmain(){intx;for(x=1;x<=3
2、00;x++){if(x%17!=0)continue;printf("%dt",x);}}while(x<=300){if(x%17!=0){x++;continue;}printf("%dt",x);x++;}(1)語(yǔ)句形式:continue;(2)語(yǔ)句作用:結(jié)束本次循環(huán)。2、continue語(yǔ)句(3)語(yǔ)句執(zhí)行流程:continue語(yǔ)句可以結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。#include"stdio.h"voidmain(){inta,b;for(a=1,b=1;a<=10;a++){if(b>=10)
3、break;if(b%3==1){b+=3;continue;}}printf("%d",a);}【練習(xí):】分析以下程序的運(yùn)行結(jié)果。程序運(yùn)行結(jié)果:4循環(huán)程序設(shè)計(jì)(循環(huán)嵌套)例7:打印如下所示等腰三角形()*************************循環(huán)程序設(shè)計(jì)(循環(huán)嵌套)*********************************************例8:如何打印:****************************************************************** *NEXT在循環(huán)體語(yǔ)句中又包含有
4、另一個(gè)完整的循環(huán)結(jié)構(gòu)的形式,稱(chēng)為循環(huán)的嵌套。如果內(nèi)部的循環(huán)體中又有嵌套的循環(huán)語(yǔ)句,則構(gòu)成多重循環(huán)。while、do-while、for三種循環(huán)都可以互相嵌套。循環(huán)嵌套循環(huán)語(yǔ)句之間的關(guān)系for(....){...}for(...){...}并列循環(huán)for(...){...for(...){...}...}內(nèi)循環(huán)外循環(huán)嵌套循環(huán)菱形圖案程序如下:#include"stdio.h"voidmain(){inti,j,k;for(j=1;j<=5;j++)//上三角{for(k=1;k<=5-j;k++)printf("");for(i=1;i<=2*j-1;i++)printf("
5、*");printf("");}for(j=3;j>=0;j--)//下三角{for(k=1;k<=4-j;k++)printf("");for(i=1;i<=2*j+1;i++)printf("*");printf("");}}循環(huán)嵌套枚舉或窮舉算法:按問(wèn)題本身的性質(zhì),一一列舉出該問(wèn)題所有可能的解,并在逐一列舉的過(guò)程中,檢驗(yàn)每個(gè)可能解是否是問(wèn)題的真正解,若是,我們采納這個(gè)解,否則拋棄它。對(duì)于所列舉的值,既不能遺漏也不能重復(fù)。循環(huán)嵌套例9:百錢(qián)買(mǎi)百雞。(雞翁一值錢(qián)五,雞母一值錢(qián)3,雞雛三值錢(qián)一。百錢(qián)買(mǎi)百雞,問(wèn)雞翁、雞母、雞雛各幾何?Cocks+hens+chicks
6、=100;5*cocks+3*hens+chicks/3=100;Cocks:1-------20;Hens:1--------33;Chicks:3,6,9….99;Cockshenschicks1198297…3366212…33979665…2012…33#include"stdio.h"voidmain(){intx,y,z;for(x=1;x<=20;x++){for(y=1;y<=33;y++){z=100-x-y;if(5*x+3*y+z/3==100)&&z%3==0)printf(“cock:%d,hens:%d,chicks:%d",x,y,z);}
7、}}循環(huán)嵌套例、搬磚問(wèn)題:36塊磚,36人搬,男搬4,女搬3,兩個(gè)小孩抬一塊磚。要求一次全搬完,問(wèn)男、女、小孩各若干?解:據(jù)題意:men的值:1—9women的值:1—12children的值:36-men-women循環(huán)程序設(shè)計(jì)使用枚舉法,主要掌握兩條原則:1、確定搜索范圍。2、選擇搜索策略。搜索策略選擇得好壞,直接決定程序的工作量的大小。循環(huán)程序設(shè)計(jì)請(qǐng)思考下面程序的功能,并思考怎樣改變搜索策略或搜索范圍,可以提高程序的效率。main(){intm,n,I;m=7;n=5;i=1;do{if(i%m==0)