第10部分循環(huán)的嵌套課件_第1頁
第10部分循環(huán)的嵌套課件_第2頁
第10部分循環(huán)的嵌套課件_第3頁
第10部分循環(huán)的嵌套課件_第4頁
第10部分循環(huán)的嵌套課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

循環(huán)嵌套循環(huán)嵌套1三種嵌套樣式樣式1:樣式2:樣式3:while()while()for(;;){┆{┆{┆while()dofor(;;){…}{…}{…}}while();}┆}三種嵌套樣式樣式1:樣式2:多重循環(huán)舉例【例】從三個(gè)紅球、五個(gè)白球、六個(gè)黑球中任意取出八個(gè)球,且其中必須有白球,輸出所有可能的方案。 #include<stdio.h> voidmain() { inta,b,c; printf("\nred\twhite\tblack\n");

for(a=0;a<=3;a++) for(b=1;b<=5;b++) { c=8-a-b; if(c>=0&&c<=6) printf("%d\t%d\t%d\t\n",a,b,c); }}

多重循環(huán)舉例【例】從三個(gè)紅球、五個(gè)白球、六個(gè)黑球中任意取出八輸出菱形********************************

行號(hào)空格星號(hào)131223315407

行號(hào)空格星號(hào)107215323431空=4-行空=行-1星=2*行-1星=9-2*行輸出菱形********行號(hào)空格星號(hào)行號(hào)空格分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { printf("%d\t",j); } printf("\n"); }}#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { printf("%d\t",j); } printf("\n"); }}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h編程輸出如下形式的乘法九九表分析圖形:行號(hào)列數(shù)輸出數(shù)據(jù)191*列號(hào)292*列號(hào)393*列號(hào)494*列號(hào)595*列號(hào)696*列號(hào)797*列號(hào)898*列號(hào)999*列號(hào)編程輸出如下形式的乘法九九表分析圖形:#include<stdio.h>main(){ intm,n; for(m=1;m<10;m++) printf("%4d",m);//打印表頭 printf("\n"); for(m=1;m<10;m++)//打印虛線 printf("-"); printf("\n"); for(m=1;m<10;m++) //打印乘法表{ for(n=1;n<10;n++) { printf("%4d",m*n); } printf("\n"); }}#include<stdio.h>將上例輸出格式改成下三角格式打印將上例輸出格式改成下三角格式打印#include<stdio.h>main(){ intm,n; for(m=1;m<10;m++) printf("%4d",m);/*打印表頭*/ printf("\n"); for(m=1;m<10;m++) printf("-"); printf("\n"); for(m=1;m<10;m++) { for(n=1;n<=m;n++) { printf("%4d",m*n); } printf("\n"); }}#include<stdio.h>趣味編程馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人、女人和小孩,在一家飯館里吃飯共花了50先令,每個(gè)男人各花3先令,每個(gè)女人各花2先令,每個(gè)小孩各花1先令,問男人、女人和小孩各有幾人?解方程組窮舉法趣味編程馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人方法1:采用三重循環(huán)窮舉全部可能的組合

#include<stdio.h>main(){intx,y,z;printf("Man\tWomen\tChildern\n");for(x=0;x<=30;x++)for(y=0;y<=30;y++)for(z=0;z<=30;z++)if(x+y+z==30&&3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}方法1:采用三重循環(huán)窮舉全部可能的組合#include<方法2:改進(jìn)算法

#include<stdio.h>

main(){intx,y,z;printf("Man\tWomen\tChildern\n");for(x=0;x<=16;x++)for(y=0;y<=25;y++){z=30–x-y;if(3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}}方法2:改進(jìn)算法#include<stdio.h>3.6.5break語句和continue語句1.break語句

跳出一層循環(huán)break語句的一般形式:2.continue語句 結(jié)束本次循環(huán)

continue語句的一般形式:break;continue;3.6.5break語句和continue語句1.breafor(表達(dá)式1;表達(dá)式2;表達(dá)式3){語句1;

continue;語句2;}continue語句while(表達(dá)式){語句1;

continue;語句2;}do{語句1;

continue;語句2;}while(表達(dá)式);for(表達(dá)式1;表達(dá)式2;表達(dá)式3)continuefor(a=1;a<=3;a++){for(b=1;b<=100;b++){printf("%d,",b);if(b>=10)break;

}printf("\n");}break語句1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,for(a=1;a<=3;a++)break語分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti; for(i=1;i<=100;i++) { if(i%10==0) break; printf("%d\t",i); } printf("\n");}#include<stdio.h>main(){inti; for(i=1;i<=100;i++) { if(i%10==0) continue; printf("%d\t",i); } printf("\n");}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { if(j%5==0) continue; printf("%d\t",j); } printf("\n"); }}#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { if(j%5==0) continue; printf("%d\t",j); } printf("\n"); }}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.hbreak和continue對(duì)for、while、do-while循環(huán)進(jìn)行內(nèi)部手術(shù)break,退出循環(huán)continue,中斷此次循環(huán)的執(zhí)行,開始下一次break和continue少用為妙它們?cè)黾恿搜h(huán)執(zhí)行的分支,break更增加了循環(huán)的出口它們可以用來處理程序異常,而盡量不要用來處理正常流程break和continue對(duì)for、while、do-wh習(xí)題演練1.以下程序運(yùn)行后,b的值是

inta=1,b;for(b=1;b<=10;b++) {if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}習(xí)題演練1.以下程序運(yùn)行后,b的值是習(xí)題演練2.以下程序的運(yùn)行結(jié)果是inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);3.以下程序的運(yùn)行結(jié)果是for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");習(xí)題演練2.以下程序的運(yùn)行結(jié)果是3.以下程序的運(yùn)行結(jié)果是習(xí)題演練4.實(shí)現(xiàn):s=1+12+123+1234+12345

intt=0,s=0,i;for(i=1;i<=5;i++){t=i+

;s=s+t;}5.以下程序運(yùn)行后,m的值是inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;

習(xí)題演練4.實(shí)現(xiàn):s=1+12+123+1234+123習(xí)題演練6.以下程序的運(yùn)行結(jié)果是

inti,j,sum;for(i=3;i>=1;i--){sum=0;for(j=1;j<=i;j++)sum+=i*j;}printf("%d",sum);習(xí)題演練6.以下程序的運(yùn)行結(jié)果是習(xí)題演練7填空求出S值:S=1+1/2!+1/3!+…+1/n!:#include<stdio.h>main(){ doubles,fac; intn,i; printf("Inputn:"); scanf("%d",&n); s=______,fac=______; for(i=1;i<=n;i++) { fac=fac______; s=s+fac;

} printf("s=%lf\n",s);}習(xí)題演練7填空求出S值:S=1+1/2!+1/3!+…+1習(xí)題演練8以下程序的輸出結(jié)果是:#include<stdio.h>main(){ intt,i=5; for(;i>=0;i--) t*=i; printf("%d\n",t);}9設(shè)i,j,k均是int型變量,則執(zhí)行以下for循環(huán)后,k值為: for(i=0,j=10;i<=j;i++,j--) k=i+j;習(xí)題演練8以下程序的輸出結(jié)果是:作業(yè)111112113311464115101051按此規(guī)律輸出10行作業(yè)11作業(yè)2一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為完數(shù)。求100之內(nèi)的所有完數(shù)。求100以內(nèi)的所有素?cái)?shù)。(素?cái)?shù)是除了1和它本身外不能被其它數(shù)整除的數(shù))根據(jù)下面的公式,計(jì)算π值。作業(yè)2課外編程活動(dòng)活動(dòng)一:“字符分揀”【活動(dòng)描述】輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其它字符的個(gè)數(shù)。活動(dòng)二:自然數(shù)驗(yàn)證【活動(dòng)描述】編一程序,驗(yàn)證下列結(jié)論:任何一個(gè)自然數(shù)n的立方都等于n個(gè)連續(xù)奇數(shù)之和。如13=1,23=3+5;33=7+9+11,43=13+15+17+19編程提示:分析數(shù)據(jù)規(guī)律課外編程活動(dòng)活動(dòng)一:“字符分揀”Dijkstra說過的話編程的藝術(shù)就是處理復(fù)雜性的藝術(shù)優(yōu)秀的程序員很清楚自己的能力是有限的,所以他對(duì)待編程任務(wù)的態(tài)度是完全謙卑的,特別是,他們會(huì)象逃避瘟疫那樣逃避“聰明的技巧”。——1972年圖靈獎(jiǎng)演講簡單是可靠的先決條件我們所使用的工具深刻地影響我們的思考習(xí)慣,從而也影響了我們的思考能力實(shí)際上如果一個(gè)程序員先學(xué)了BASIC,那就很難教會(huì)他好的編程技術(shù)了:作為一個(gè)可能的程序員,他們的神經(jīng)已經(jīng)錯(cuò)亂了,而且無法康復(fù)就語言的使用問題:根本不可能用一把鈍斧子削好鉛筆,而換成十把鈍斧子會(huì)使事情變成大災(zāi)難Dijkstra說過的話編程的藝術(shù)就是處理復(fù)雜性的藝術(shù)循環(huán)嵌套循環(huán)嵌套29三種嵌套樣式樣式1:樣式2:樣式3:while()while()for(;;){┆{┆{┆while()dofor(;;){…}{…}{…}}while();}┆}三種嵌套樣式樣式1:樣式2:多重循環(huán)舉例【例】從三個(gè)紅球、五個(gè)白球、六個(gè)黑球中任意取出八個(gè)球,且其中必須有白球,輸出所有可能的方案。 #include<stdio.h> voidmain() { inta,b,c; printf("\nred\twhite\tblack\n");

for(a=0;a<=3;a++) for(b=1;b<=5;b++) { c=8-a-b; if(c>=0&&c<=6) printf("%d\t%d\t%d\t\n",a,b,c); }}

多重循環(huán)舉例【例】從三個(gè)紅球、五個(gè)白球、六個(gè)黑球中任意取出八輸出菱形********************************

行號(hào)空格星號(hào)131223315407

行號(hào)空格星號(hào)107215323431空=4-行空=行-1星=2*行-1星=9-2*行輸出菱形********行號(hào)空格星號(hào)行號(hào)空格分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { printf("%d\t",j); } printf("\n"); }}#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { printf("%d\t",j); } printf("\n"); }}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h編程輸出如下形式的乘法九九表分析圖形:行號(hào)列數(shù)輸出數(shù)據(jù)191*列號(hào)292*列號(hào)393*列號(hào)494*列號(hào)595*列號(hào)696*列號(hào)797*列號(hào)898*列號(hào)999*列號(hào)編程輸出如下形式的乘法九九表分析圖形:#include<stdio.h>main(){ intm,n; for(m=1;m<10;m++) printf("%4d",m);//打印表頭 printf("\n"); for(m=1;m<10;m++)//打印虛線 printf("-"); printf("\n"); for(m=1;m<10;m++) //打印乘法表{ for(n=1;n<10;n++) { printf("%4d",m*n); } printf("\n"); }}#include<stdio.h>將上例輸出格式改成下三角格式打印將上例輸出格式改成下三角格式打印#include<stdio.h>main(){ intm,n; for(m=1;m<10;m++) printf("%4d",m);/*打印表頭*/ printf("\n"); for(m=1;m<10;m++) printf("-"); printf("\n"); for(m=1;m<10;m++) { for(n=1;n<=m;n++) { printf("%4d",m*n); } printf("\n"); }}#include<stdio.h>趣味編程馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人、女人和小孩,在一家飯館里吃飯共花了50先令,每個(gè)男人各花3先令,每個(gè)女人各花2先令,每個(gè)小孩各花1先令,問男人、女人和小孩各有幾人?解方程組窮舉法趣味編程馬克思手稿中有一道趣味數(shù)學(xué)題:有30個(gè)人,其中有男人方法1:采用三重循環(huán)窮舉全部可能的組合

#include<stdio.h>main(){intx,y,z;printf("Man\tWomen\tChildern\n");for(x=0;x<=30;x++)for(y=0;y<=30;y++)for(z=0;z<=30;z++)if(x+y+z==30&&3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}方法1:采用三重循環(huán)窮舉全部可能的組合#include<方法2:改進(jìn)算法

#include<stdio.h>

main(){intx,y,z;printf("Man\tWomen\tChildern\n");for(x=0;x<=16;x++)for(y=0;y<=25;y++){z=30–x-y;if(3*x+2*y+z==50)printf("%3d\t%5d\t%8d\n",x,y,z);}}方法2:改進(jìn)算法#include<stdio.h>3.6.5break語句和continue語句1.break語句

跳出一層循環(huán)break語句的一般形式:2.continue語句 結(jié)束本次循環(huán)

continue語句的一般形式:break;continue;3.6.5break語句和continue語句1.breafor(表達(dá)式1;表達(dá)式2;表達(dá)式3){語句1;

continue;語句2;}continue語句while(表達(dá)式){語句1;

continue;語句2;}do{語句1;

continue;語句2;}while(表達(dá)式);for(表達(dá)式1;表達(dá)式2;表達(dá)式3)continuefor(a=1;a<=3;a++){for(b=1;b<=100;b++){printf("%d,",b);if(b>=10)break;

}printf("\n");}break語句1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,for(a=1;a<=3;a++)break語分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti; for(i=1;i<=100;i++) { if(i%10==0) break; printf("%d\t",i); } printf("\n");}#include<stdio.h>main(){inti; for(i=1;i<=100;i++) { if(i%10==0) continue; printf("%d\t",i); } printf("\n");}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { if(j%5==0) continue; printf("%d\t",j); } printf("\n"); }}#include<stdio.h>main(){inti,j; for(i=1;i<=10;i++) { for(j=1;j<=10;j++) { if(j%5==0) continue; printf("%d\t",j); } printf("\n"); }}分析下列兩個(gè)程序的運(yùn)行結(jié)果#include<stdio.hbreak和continue對(duì)for、while、do-while循環(huán)進(jìn)行內(nèi)部手術(shù)break,退出循環(huán)continue,中斷此次循環(huán)的執(zhí)行,開始下一次break和continue少用為妙它們?cè)黾恿搜h(huán)執(zhí)行的分支,break更增加了循環(huán)的出口它們可以用來處理程序異常,而盡量不要用來處理正常流程break和continue對(duì)for、while、do-wh習(xí)題演練1.以下程序運(yùn)行后,b的值是

inta=1,b;for(b=1;b<=10;b++) {if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}習(xí)題演練1.以下程序運(yùn)行后,b的值是習(xí)題演練2.以下程序的運(yùn)行結(jié)果是inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);3.以下程序的運(yùn)行結(jié)果是for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");習(xí)題演練2.以下程序的運(yùn)行結(jié)果是3.以下程序的運(yùn)行結(jié)果是習(xí)題演練4.實(shí)現(xiàn):s=1+12+123+1234+12345

intt=0,s=0,i;for(i=1;i<=5;i++){t=i+

;s=s+t;}5.以下程序運(yùn)行后,m的值是inti,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論