計(jì)算機(jī)二級(jí) 循環(huán)結(jié)構(gòu)_第1頁
計(jì)算機(jī)二級(jí) 循環(huán)結(jié)構(gòu)_第2頁
計(jì)算機(jī)二級(jí) 循環(huán)結(jié)構(gòu)_第3頁
計(jì)算機(jī)二級(jí) 循環(huán)結(jié)構(gòu)_第4頁
計(jì)算機(jī)二級(jí) 循環(huán)結(jié)構(gòu)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)二級(jí)循環(huán)結(jié)構(gòu)課件第1頁,共38頁,2023年,2月20日,星期四3.4循環(huán)結(jié)構(gòu)循環(huán)算法研究:

迭代和窮舉是兩類具有代表性的基本循環(huán)算法1.迭代迭代是一個(gè)不斷用新值取代變量的舊值,或由舊值遞推出變量的新值的過程。第2頁,共38頁,2023年,2月20日,星期四1.迭代例如1:人口增長(zhǎng)問題。

按照每年0.2%的增長(zhǎng)速度,我國(guó)現(xiàn)有13億人口,10年后將有多少人?設(shè)我國(guó)現(xiàn)有人口為m,則第1年后人口數(shù)變?yōu)椋簃=m*(1+0.2%);即將m的值用m*(1+0.2%)替代第2年后,在執(zhí)行一次上述的替代;第10年后,就把上述的替代執(zhí)行10次;注意:迭代要素:(1)初值(2)迭代公式(3)迭代終止條件第3頁,共38頁,2023年,2月20日,星期四1.迭代例如2:兔子繁殖問題。設(shè)有一對(duì)新生兔子,從第三個(gè)月開始他們每月都生育一對(duì)小兔子。按此規(guī)律,并假設(shè)沒有兔子死亡,一年后將共有多少對(duì)兔子?

1,1,2,3,5,8,13,21,34,……迭代要素:(1)初值fib1=fib2=1

(2)迭代公式fibn=fibn-1+fibn-2

(3)迭代終止條件n小于等于12第4頁,共38頁,2023年,2月20日,星期四3.4循環(huán)結(jié)構(gòu)循環(huán)算法研究:

迭代和窮舉是兩類具有代表性的基本循環(huán)算法2.窮舉窮舉是對(duì)問題所有可能狀態(tài)逐一測(cè)試,直至找到解或?qū)⑷靠赡軤顟B(tài)都測(cè)試完成為止。第5頁,共38頁,2023年,2月20日,星期四例如1:分類輸出100以內(nèi)的奇數(shù)和偶數(shù)?例如2:百錢百雞問題。我國(guó)古代有一道有名的數(shù)學(xué)問題,即百錢買百雞的問題:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問雞翁、雞母、雞雛各幾何?第6頁,共38頁,2023年,2月20日,星期四#include"stdio.h"main(){intcocks,hens,chicks;cocks=0;

while(cocks<=19){hens=0;

while(hens<=33){

chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)printf("\t公雞=%d,母雞=%d,小雞=%d\n",cocks,hens,chicks);hens=hens+1;}cocks=cocks+1;}}第7頁,共38頁,2023年,2月20日,星期四3.4.1while循環(huán)語句第8頁,共38頁,2023年,2月20日,星期四第9頁,共38頁,2023年,2月20日,星期四第10頁,共38頁,2023年,2月20日,星期四第11頁,共38頁,2023年,2月20日,星期四例:讀程序第12頁,共38頁,2023年,2月20日,星期四例如:人口增長(zhǎng)問題。

按照每年0.2%的增長(zhǎng)速度,我國(guó)現(xiàn)有13億人口,10年后將有多少人?#include"stdio.h"voidmain(){doublem=13;inti=1;while(i<=10){

m=m*(1+0.002);i++;

}printf(“10年后的人口為%f”,m);}

第13頁,共38頁,2023年,2月20日,星期四#include"stdio.h"main(){intcocks,hens,chicks;cocks=0;

while(cocks<=19){hens=0;

while(hens<=33){

chicks=100-cocks-hens;if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)printf("\t公雞=%d,母雞=%d,小雞=%d\n",cocks,hens,chicks);hens=hens+1;}cocks=cocks+1;}}第14頁,共38頁,2023年,2月20日,星期四/*兔子繁殖問題或稱為斐波那契數(shù)列*/#include"stdio.h"voidmain(){ intn,k=3,a1=1,a2=1,h=0;/*h為第n月兔子總對(duì)數(shù)*/ printf("請(qǐng)輸入月份:"); scanf("%d",&n); printf("\n第%d月有%d對(duì)兔子",1,1); printf("\n第%d月有%d對(duì)兔子",2,1); while(k<=n) { h=a1+a2; printf("\n第%d月有%d對(duì)兔子",k,h); a1=a2; a2=h; k++; }}第15頁,共38頁,2023年,2月20日,星期四3.4.2do--while循環(huán)語句第16頁,共38頁,2023年,2月20日,星期四第17頁,共38頁,2023年,2月20日,星期四3.4.3for循環(huán)語句第18頁,共38頁,2023年,2月20日,星期四例:計(jì)算1到100的和main(){int

sum=0,n;for(n=1;n<=100;n++)sum=sum+n;

printf("sum=%d",sum);}第19頁,共38頁,2023年,2月20日,星期四第20頁,共38頁,2023年,2月20日,星期四第21頁,共38頁,2023年,2月20日,星期四第22頁,共38頁,2023年,2月20日,星期四第23頁,共38頁,2023年,2月20日,星期四第24頁,共38頁,2023年,2月20日,星期四第25頁,共38頁,2023年,2月20日,星期四#include"stdio.h"main(){inti,j;for(i=1;i<=9;i++){for(j=1;j<=i;j++) printf("%d*%d=%2d",i,j,i*j); printf("\n");}}第26頁,共38頁,2023年,2月20日,星期四3.4.4break語句和continue語句

注意:break語句不能用于循環(huán)語句和switch語句之外的任何其他語句中。

break語句(1)break語句作用是跳出switch語句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的下一條語句。由于break語句的轉(zhuǎn)移方向是明確的,所以不需要語句標(biāo)號(hào)與之配合。(2)break語句的形式為:break;

第27頁,共38頁,2023年,2月20日,星期四例如:判斷一個(gè)數(shù)是否為素?cái)?shù)?#include"stdio.h"voidmain(){ intn,i; printf(“請(qǐng)輸入一個(gè)數(shù):");scanf("%d",&n);for(i=2;i<n;i++) if(n%i==0)break;if(i<n)printf(“\n%d不是素?cái)?shù)",n);elseprintf(“\n%d是素?cái)?shù)",n);}第28頁,共38頁,2023年,2月20日,星期四2.continue語句

continue語句只能用在循環(huán)體中。(1)功能:continue語句只能用在循環(huán)體中,結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句之后的語句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。應(yīng)注意的是,本語句只結(jié)束本層次的循環(huán),并不跳出循環(huán)。(2)語句格式:continue;3.4.4break語句和continue語句

第29頁,共38頁,2023年,2月20日,星期四第30頁,共38頁,2023年,2月20日,星期四continue語句和break語句的區(qū)別continue語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。

break語句則是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。

4.3break語句和continue語句

第31頁,共38頁,2023年,2月20日,星期四三、goto語句(無條件轉(zhuǎn)向語句)格式:goto標(biāo)號(hào)標(biāo)識(shí)符功能:執(zhí)行該語句時(shí),將程序流程無條件地轉(zhuǎn)向指定標(biāo)號(hào)所在的語句繼續(xù)執(zhí)行。標(biāo)號(hào)由數(shù)字,字母,下劃線組成例如:gotoloop_3;合法;goto123;不合法.3.4.4break語句和continue語句

第32頁,共38頁,2023年,2月20日,星期四

main()

{int

sum=0,i=1;loop1:sum=sum+i;i++;if(i<=100)gotoloop1;printf("sum=%d",sum);}例用if語句和goto語句構(gòu)成循環(huán),求1到100的和運(yùn)行結(jié)果:505

溫馨提示

  • 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. 人人文庫(kù)網(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)論