循環(huán)嵌套-課件_第1頁
循環(huán)嵌套-課件_第2頁
循環(huán)嵌套-課件_第3頁
循環(huán)嵌套-課件_第4頁
循環(huán)嵌套-課件_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

循環(huán)嵌套主講:曹毅幾種循環(huán)的比較for和while先判斷循環(huán)條件后執(zhí)行循環(huán)體,do-while語句先執(zhí)行循環(huán)體后判斷循環(huán)條件。while、do-while、for可以相互替換使用。通常使用情況while語句多用于不需要賦初值或循環(huán)次數(shù)不定的情況。for語句多用于要賦初值或循環(huán)次數(shù)固定的情況。do-while語句多用于至少要運行一次的循環(huán)控制2課后練習(xí):求兩個數(shù)a,b的最大公約數(shù)(a<b<=1000),提示:此題有多種方法實現(xiàn)。我國目前人口為13億,且每年增長率為1.5%。問多少年后人口能達到26億。[NOIP2002普及組第一題]已知:sn=1+1/2+1/3+…+1/n.顯然對于任意一個整數(shù)K,當(dāng)n足夠大時,sn>k。現(xiàn)給出一個整數(shù)K(1<=k<=15),求滿足sn>k的最小n。3課后練習(xí):求兩個數(shù)a,b的最大公約數(shù)(a<b<=1000),提示:此題有多種方法實現(xiàn)。我國目前人口為13億,且每年增長率為1.5%。問多少年后人口能達到26億。[NOIP2002普及組第一題]已知:sn=1+1/2+1/3+…+1/n.顯然對于任意一個整數(shù)K,當(dāng)n足夠大時,sn>k。現(xiàn)給出一個整數(shù)K(1<=k<=15),求滿足sn>k的最小n。解法1:由a~1逐個枚舉,找到第一個能同時被a、b整除的數(shù)即為最大公約數(shù)。

for(n=a;n>=1;n--)if(b%n==0&&a%n==0){printf(“%d”,n);break;}解法2:輾轉(zhuǎn)相除法r=b%ar=b%a;while(r!=0){b=a;a=r;r=b%a;}4課后練習(xí):我國目前人口為13億,且每年增長率為1.5%。問多少年后人口能達到26億。[NOIP2002普及組第一題]已知:sn=1+1/2+1/3+…+1/n.顯然對于任意一個整數(shù)K,當(dāng)n足夠大時,sn>k?,F(xiàn)給出一個整數(shù)K(1<=k<=15),求滿足sn>k的最小n。解法:此題解法較簡單,設(shè)p=13.0,while(p<26)執(zhí)行循環(huán),另設(shè)n=0;用于累加年。

intn=0;floatp=13;while(p<26){n++;p=p*1.015;}printf("%d",n);5課后練習(xí):[NOIP2002普及組第一題]已知:sn=1+1/2+1/3+…+1/n.顯然對于任意一個整數(shù)K,當(dāng)n足夠大時,sn>k。現(xiàn)給出一個整數(shù)K(1<=k<=15),求滿足sn>k的最小n。解法:此題關(guān)鍵在于理解題意。滿足sn>k的最小n;

intk,n=0;doublesn=0;scanf("%d",&k);while(sn<=k){n++;sn=sn+1.0/n;}printf("%d",n);跟蹤變量法:k=26【練習(xí)】用格里高利公式求π的近似值。要求精確到最后一項的絕對值小于1e-6。格里高利公式為:分子flag:1,-1,1,-1…分母n:1,3,5,7,...項item=flag/n06.01.20247#include<stdio.h>#include<math.h>voidmain(){

doublepi=0,item=1;intn=1,flag=1;do{pi=pi+item;n=n+2;flag=-flag;item=flag*1.0/n;}while(fabs(item)>=1e-6);pi=pi*4;printf("pi=%lf\n",pi);}8大家有疑問的,可以詢問和交流可以互相討論下,但要小聲點回顧知識for語句for(表達式1,表達式2,表達式3)循環(huán)體;表達式1:變量賦初值表達式2:循環(huán)條件表達式3:循環(huán)變量增值10例:打印下列圖像(9*9的星號)分析:重復(fù)打印9行星號循環(huán)條件:i=1to9循環(huán)體:打印一行星號*********************************************************************************核心代碼:

for(i=1;i<=9;i++){printf(“*********”);printf(“\n”);}11進一步分析:核心代碼:

for(i=1;i<=9;i++){printf(“*********”);printf(“\n”);}進一步分析:每一行重復(fù)打印9個星號循環(huán)條件:j=1to9

循環(huán)體:打印一個星號for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf(“*”);printf(“\n”);}循環(huán)嵌套12循環(huán)嵌套一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套,內(nèi)嵌的循環(huán)中還可以嵌套循環(huán)即為多層循環(huán)。說明:

⑴嵌套的原則:不允許交叉

⑵外層循環(huán)一次,內(nèi)層循環(huán)一遍。for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf(“*”);printf(“\n”);}外層內(nèi)層13循環(huán)嵌套⑵外層循環(huán)一次,內(nèi)層循環(huán)一遍。for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf(“*”);printf(“\n”);}外層內(nèi)層14變式1:打印如下圖形分析:第1行打印1個*第2行打印2個*…第5行打印5個****************for(i=1;i<=5;i++){?

printf(“\n”);}for(j=1;j<=i;j++)printf(“*”);用變量i控制行數(shù)。用變量j控制每行打印*的個數(shù)。for(i=1;i<=5;i++){

打印i個*;

printf(“\n”);}15變式2:打印如下圖形分析:第1行打印5個空格,1個*第2行打印4個空格,3個*第3行打印3個空格,5個*…第i行打印0個空格,2*i-1個*for(i=1;i<=6;i++){

打印6-i個空格;

打印2*i-1個*;

printf(“\n”);}************************************輸入n,打印n行上述圖形,該如何修改程序?16變式3:打印如下字母塔AABAABCBAABCDCBA……ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA分析:第1行打印25個空格,打印A第2行打印24個空格,打印ABA第3行打印23個空格,打印ABCBA…第26行打印0個空格,打印ABC…CBA17方法總結(jié):逐層深入,找規(guī)律偽代碼表示法。課堂練習(xí):1.求水仙花數(shù)。所謂水仙花數(shù),是指一個三位數(shù)abc,如果滿足a3+b3+c3=abc,則abc是水仙花數(shù)。2.編程求100-200之間的素數(shù)。

18分析:第一題:三重循環(huán)枚舉a、b、c的值從0-9,符合條件即可輸出。第二題:先找出如何判斷一個數(shù)為素數(shù)的方法,然后枚舉100-200的數(shù)即可。

for(i=100;i<=200;i++)

如果i是素數(shù),則輸出判i是否為素數(shù):枚舉j=2tosqrt(i),只要i%j==0成立,則不為素數(shù)。此處可事先設(shè)標(biāo)志變量f=1;如果i%j==0成立,則f=0;枚舉結(jié)束后檢查f的值即可。193.四個學(xué)生上地理課,回答我國四大淡水湖大小時這樣說:甲:“最大洞庭湖,最小洪澤湖,鄱陽湖第三?!币遥骸白畲蠛闈珊钚《赐ズ?,鄱陽湖第二,太湖第三?!北骸白钚『闈珊赐ズ谌?。”?。骸白畲筵蛾柡?,最小太湖,洪澤湖第二,洞庭湖第三。”對于每個湖的大小,每個學(xué)生僅答對一個,請編程確定四個湖的大小。課堂練習(xí):20課后練習(xí)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論