




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第5 5章章 C C語言循環(huán)結(jié)構(gòu)程序設(shè)計(jì)語言循環(huán)結(jié)構(gòu)程序設(shè)計(jì)下一頁下一頁返返 回回本章要點(diǎn)本章要點(diǎn) while語句、語句、do-while語句、語句、for語句語句 continue語句、語句、break語句語句 循環(huán)的嵌套循循環(huán)的嵌套循 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)學(xué)習(xí)方法建議學(xué)習(xí)方法建議 學(xué)習(xí)本章內(nèi)容時(shí),應(yīng)重點(diǎn)掌握三種循環(huán)語句的語法格學(xué)習(xí)本章內(nèi)容時(shí),應(yīng)重點(diǎn)掌握三種循環(huán)語句的語法格式及執(zhí)行過程,并在此基礎(chǔ)上理解循環(huán)嵌套的應(yīng)用,要多式及執(zhí)行過程,并在此基礎(chǔ)上理解循環(huán)嵌套的應(yīng)用,要多讀程序,理解編程思想,并多上機(jī)練習(xí)。讀程序,理解編程思想,并多上機(jī)練習(xí)。目目 錄錄5.1 while5.1
2、while語句語句 5.25.2 do-whiledo-while語句語句5.35.3 forfor語句語句 5.45.4 循環(huán)的嵌套循環(huán)的嵌套 返返 回回上一頁上一頁5.55.5 breakbreak語句和語句和continuecontinue語句語句 5.65.6 循環(huán)結(jié)構(gòu)應(yīng)用舉例循環(huán)結(jié)構(gòu)應(yīng)用舉例 5.75.7 本章小結(jié)本章小結(jié) 5.1 while語句語句while語句用來實(shí)現(xiàn)語句用來實(shí)現(xiàn)“當(dāng)型當(dāng)型”循環(huán)結(jié)構(gòu)。其一般形式如下:循環(huán)結(jié)構(gòu)。其一般形式如下:while(表達(dá)式)(表達(dá)式) 語句語句while語句的執(zhí)行過程是:語句的執(zhí)行過程是:下一頁下一頁返返 回回 首先計(jì)算表達(dá)式的值,若結(jié)果是首
3、先計(jì)算表達(dá)式的值,若結(jié)果是“真真”(非(非0)值時(shí),執(zhí)行)值時(shí),執(zhí)行while語句中的內(nèi)嵌語句,語句中的內(nèi)嵌語句,即循環(huán)體;然后再計(jì)算表達(dá)式的值,重復(fù)上即循環(huán)體;然后再計(jì)算表達(dá)式的值,重復(fù)上述過程,直到表達(dá)式的值為述過程,直到表達(dá)式的值為“假假”(0)時(shí))時(shí)結(jié)束,流程控制轉(zhuǎn)到結(jié)束,流程控制轉(zhuǎn)到while語句的下一個(gè)語語句的下一個(gè)語句繼續(xù)執(zhí)行句繼續(xù)執(zhí)行 。 while語句中的語句中的“表達(dá)式表達(dá)式”就是循環(huán)的就是循環(huán)的條件,其執(zhí)行流程見圖條件,其執(zhí)行流程見圖5.1,其特點(diǎn)是:先,其特點(diǎn)是:先判斷表達(dá)式,后執(zhí)行語句。判斷表達(dá)式,后執(zhí)行語句。 表達(dá)式表達(dá)式語句語句0非非0圖圖5.1 while語句執(zhí)
4、行過程語句執(zhí)行過程 例例5.1】 求求 。 上一頁上一頁下一頁下一頁返返 回回1001nn【編程思路】【編程思路】(1)定義變量)定義變量i、sum,并分別賦初值為,并分別賦初值為1和和0,用,用i表表示累加數(shù),示累加數(shù),sum表示累加和。表示累加和。(2)在)在while語句中,使語句中,使sum在原有值的基礎(chǔ)上加上在原有值的基礎(chǔ)上加上i的值,加完后再使的值,加完后再使i值自動(dòng)增值自動(dòng)增1。(3)用)用i=100作為循環(huán)的條件,若作為循環(huán)的條件,若i的值超過的值超過100就就停止循環(huán)。停止循環(huán)。(4)最后輸出累加和)最后輸出累加和sum。 【程序代碼】【程序代碼】#include stdio
5、.hmain( ) int i=1,sum=0;while(i=100)sum=sum+i; i+; printf(“sum=%dn,sum); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:上一頁上一頁下一頁下一頁返返 回回【例【例5.2】求】求n!,n由鍵盤輸入。由鍵盤輸入?!揪幊趟悸贰俊揪幊趟悸贰壳箅A乘就是求累乘,即求求階乘就是求累乘,即求1*2*3*n。這里除用于存放累乘積的變量的應(yīng)置。這里除用于存放累乘積的變量的應(yīng)置為為1外,其執(zhí)行過程與累加相同。外,其執(zhí)行過程與累加相同。【程序代碼】【程序代碼】#include stdio.hmain( )int i=1,n,s=1;printf(Input n:)
6、;scanf(%d,&n);while(i=n) s*=i; i+;printf(%d!=%dn,n,s);運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:do-while語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。其一般形式語句的特點(diǎn)是先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。其一般形式為為do語句語句while(表達(dá)式);(表達(dá)式);上一頁上一頁下一頁下一頁返返 回回5.2 do-while語句語句do-while語句的執(zhí)行過程是:語句的執(zhí)行過程是: 先執(zhí)行一次循環(huán)體語句,然后判斷表先執(zhí)行一次循環(huán)體語句,然后判斷表達(dá)式,當(dāng)表達(dá)式的值為非達(dá)式,當(dāng)表達(dá)式的值為非0時(shí),返回重新時(shí),返回重新執(zhí)行循環(huán)體語
7、句,如此反復(fù),直到表達(dá)式執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式值等于值等于0為止,此時(shí)循環(huán)結(jié)束??梢杂脠D為止,此時(shí)循環(huán)結(jié)束。可以用圖5.2表示其流程。表示其流程。語句語句0(假假)表達(dá)式表達(dá)式圖圖5.2 do-while語句執(zhí)行過程語句執(zhí)行過程 【例【例5.3】 用do-while語句改寫例5.1的程序。上一頁上一頁下一頁下一頁返返 回回【程序代碼】【程序代碼】#include stdio.h“main( )int i=1,sum=0;do sum=sum+i; i+; while(i=100);printf(“sum=%dn,sum); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: for語句的一般形式為:語
8、句的一般形式為: for(表達(dá)式表達(dá)式1;表達(dá)式;表達(dá)式2;表達(dá)式;表達(dá)式3) 語句語句For語句的執(zhí)行過程是:語句的執(zhí)行過程是:(1)求解表達(dá)式)求解表達(dá)式1;(2)求解表達(dá)式)求解表達(dá)式2,若其值為真(值為非,若其值為真(值為非0),),則執(zhí)行則執(zhí)行for語句中指定的內(nèi)嵌語句,然后執(zhí)行語句中指定的內(nèi)嵌語句,然后執(zhí)行下面第(下面第(3)步。若為假(值為步。若為假(值為0),則結(jié)束循環(huán),轉(zhuǎn)到第),則結(jié)束循環(huán),轉(zhuǎn)到第(5)步;)步; (3)求解表達(dá)式)求解表達(dá)式3。(4)轉(zhuǎn)回上面第()轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。)步驟繼續(xù)執(zhí)行。(5)循環(huán)結(jié)束,執(zhí)行)循環(huán)結(jié)束,執(zhí)行for語句下面的一條語語句下面
9、的一條語句。句。 可以用圖可以用圖5.3來表示來表示for語句的執(zhí)行過程。語句的執(zhí)行過程。上一頁上一頁下一頁下一頁返返 回回5.3 for語句語句非非0求解表達(dá)式求解表達(dá)式1表達(dá)式表達(dá)式2語句語句求解表達(dá)式求解表達(dá)式30圖圖5.3 for語句執(zhí)行過程語句執(zhí)行過程 for語句最簡(jiǎn)單的應(yīng)用形式也就是最易理解的如下形式:語句最簡(jiǎn)單的應(yīng)用形式也就是最易理解的如下形式: for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 語句語句【例【例5.4】 用用for語句改寫例語句改寫例5.1的程序的程序【程序代碼】【程序代碼】#include stdio.hmain( ) i
10、nt i,sum=0; for(i=1;i=100;i+) sum+=i; printf(sum=%dn,sum);運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: 上一頁上一頁下一頁下一頁返返 回回說明:說明: 有時(shí)根據(jù)需要可以將有時(shí)根據(jù)需要可以將for語句中的部分或所有表達(dá)式省略,省略語句中的部分或所有表達(dá)式省略,省略“表達(dá)式表達(dá)式1”時(shí),應(yīng)在時(shí),應(yīng)在for語句之前給循環(huán)變量賦初值。省略語句之前給循環(huán)變量賦初值。省略“表達(dá)式表達(dá)式2”時(shí),在循環(huán)體時(shí),在循環(huán)體中通常要有能使循環(huán)結(jié)束的語句,否則就成了無限循環(huán)了。省略中通常要有能使循環(huán)結(jié)束的語句,否則就成了無限循環(huán)了。省略“表達(dá)式表達(dá)式3”時(shí),通常在循環(huán)體中要有使
11、循環(huán)變量增值的語句。不管省略幾個(gè)表達(dá)式,分時(shí),通常在循環(huán)體中要有使循環(huán)變量增值的語句。不管省略幾個(gè)表達(dá)式,分隔符分號(hào)隔符分號(hào)“;”是不能省的。是不能省的。 如例如例5.4中的代碼可以改寫成:中的代碼可以改寫成: int i=1,sum=0; for( ;i=100;i+) sum+=i;上一頁上一頁下一頁下一頁返返 回回 一個(gè)循環(huán)的循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。一個(gè)循環(huán)的循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。各種語言中關(guān)于循環(huán)的內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。各種語言中關(guān)于循環(huán)的嵌套的概念都是一樣的。嵌
12、套的概念都是一樣的。 三種循環(huán)(三種循環(huán)(while循環(huán),循環(huán),do-while循環(huán)和循環(huán)和for循環(huán))即可以自身嵌套,循環(huán))即可以自身嵌套,也可以互相嵌套。也可以互相嵌套。 【例【例5.5】 用一元紙幣換一分、兩分及五分的硬幣,要求換到的硬幣總數(shù)為用一元紙幣換一分、兩分及五分的硬幣,要求換到的硬幣總數(shù)為50枚,問有多少種換法?每種換法中各種硬幣分別是多少?枚,問有多少種換法?每種換法中各種硬幣分別是多少?【編程思路】【編程思路】設(shè)設(shè)x,y,z分別代表五分、二分、及一分的硬幣數(shù)目。三變量只有兩個(gè)是獨(dú)立分別代表五分、二分、及一分的硬幣數(shù)目。三變量只有兩個(gè)是獨(dú)立的,第三個(gè)必須滿足的,第三個(gè)必須滿足
13、z=1005*x2*y 及及 x+y+z = = 50的條件。因此可用雙的條件。因此可用雙重循環(huán)解此問題。其中重循環(huán)解此問題。其中x可由可由1到到20,y可由可由0到到50。上一頁上一頁下一頁下一頁返返 回回5.4 循環(huán)的嵌套循環(huán)的嵌套【程序代碼】【程序代碼】#include stdio.hmain( )int x,y,z;printf(FIVEtTWOtONEn);for(x=0;x=20;x+) for(y=0;y=50;y+) z=100-5*x-2*y; if(x+y+z=50) printf(%3dt%3dt%3dn,x,y,z); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:上一頁上一頁下一頁下一
14、頁返返 回回 【例【例5.6】編寫程序,輸出下列圖形】編寫程序,輸出下列圖形上一頁上一頁下一頁下一頁返返 回回【編程思路】【編程思路】(1)圖形共有)圖形共有5行,定義行,定義i表示行數(shù),即外循環(huán)的循環(huán)控制變量,其值從表示行數(shù),即外循環(huán)的循環(huán)控制變量,其值從1到到5遞增。遞增。(2)每行前空格的數(shù)量分別為)每行前空格的數(shù)量分別為5、4、3、2、1,如果用,如果用i表示行數(shù),則每行表示行數(shù),則每行前的空格數(shù)據(jù)與行號(hào)前的空格數(shù)據(jù)與行號(hào)i的關(guān)系為的關(guān)系為6-i;(3)每一行)每一行“*”的數(shù)量分別為的數(shù)量分別為1、3、5、7、9,與行號(hào)的關(guān)系為,與行號(hào)的關(guān)系為2*i-1。(4)定義變量)定義變量j、
15、k表示空格數(shù)和表示空格數(shù)和“*”數(shù),它們作為內(nèi)循環(huán)的循環(huán)控制變量。數(shù),它們作為內(nèi)循環(huán)的循環(huán)控制變量?!境绦虼a】【程序代碼】#include stdio.hmain( )int i,j,k; for(i=1;i=5;i+) for(j=1;j=6-i;j+) printf( ); for(k=1;k=2*i-1;k+) printf(*); printf(n);說明:說明: 本程序用雙重循環(huán)實(shí)現(xiàn),外循環(huán)控制行數(shù),內(nèi)循環(huán)控制每行的內(nèi)容,本程序用雙重循環(huán)實(shí)現(xiàn),外循環(huán)控制行數(shù),內(nèi)循環(huán)控制每行的內(nèi)容,每行內(nèi)容均包括三部分,行前空格、一行每行內(nèi)容均包括三部分,行前空格、一行*、換行。行前空格和每行的、換
16、行。行前空格和每行的*的的輸出均用內(nèi)嵌的循環(huán)實(shí)現(xiàn)。輸出均用內(nèi)嵌的循環(huán)實(shí)現(xiàn)。上一頁上一頁下一頁下一頁返返 回回 break語句的一般形式為:語句的一般形式為: break;該語句的功能有兩個(gè):該語句的功能有兩個(gè):(1)在)在switch語句的程序段中,遇到語句的程序段中,遇到break語句,則退出語句,則退出switch語句,執(zhí)行后語句,執(zhí)行后繼語句。繼語句。(2)在循環(huán)體中,遇到)在循環(huán)體中,遇到break語句,則退出包含語句,則退出包含break語句的那層循環(huán)語句的那層循環(huán),一般和一般和if語句連用。語句連用。 【例【例5.7】判斷正整數(shù)】判斷正整數(shù)m是否素?cái)?shù),是否素?cái)?shù),m由鍵盤輸入。由鍵盤
17、輸入。 【編程思路】【編程思路】判斷判斷m是否是素?cái)?shù),可以有三種方法:是否是素?cái)?shù),可以有三種方法:(1)用)用m依次除以依次除以2m-1之間的所有數(shù),若都不能除盡,則之間的所有數(shù),若都不能除盡,則m是素?cái)?shù),否則就是素?cái)?shù),否則就不是素?cái)?shù)。不是素?cái)?shù)。(2)用)用m依次除以依次除以2 之間的所有數(shù),若都不能除盡,則之間的所有數(shù),若都不能除盡,則m是素?cái)?shù),否則就是素?cái)?shù),否則就不是素?cái)?shù)。不是素?cái)?shù)。上一頁上一頁下一頁下一頁返返 回回5.5 break語句和語句和 continue語句語句5.5.1 break語句語句m (3)用)用m依次除以依次除以m/2之間的所有數(shù),若都不能除盡,則之間的所有數(shù),若都不
18、能除盡,則m是素?cái)?shù),否則就不是素?cái)?shù),否則就不是素?cái)?shù)。是素?cái)?shù)。本題采用第(本題采用第(2)種方法,其算法是這樣的:)種方法,其算法是這樣的: 將將 的值賦給變量的值賦給變量k,讓,讓m被被2到到k除,如果除,如果m能被能被2k之中任何一個(gè)整數(shù)整除,之中任何一個(gè)整數(shù)整除,則提前結(jié)束循環(huán),此時(shí)則提前結(jié)束循環(huán),此時(shí)i必然小于或等于必然小于或等于k,如果,如果m不能被不能被2k之間的任一整數(shù)整之間的任一整數(shù)整除,則在完成最后一次循環(huán)后,除,則在完成最后一次循環(huán)后,i還要加還要加1,因此,因此i=k+1,然后才終止循環(huán)。在循環(huán)然后才終止循環(huán)。在循環(huán)之后判別之后判別i的值是否大于等于的值是否大于等于k+1,
19、若是,則表明未曾被,若是,則表明未曾被2k之間任一整數(shù)整除過,之間任一整數(shù)整除過,因此輸出因此輸出“是素?cái)?shù)是素?cái)?shù)”。 【程序代碼】【程序代碼】#include #includemain( )int m,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k+1)printf(%d is a prime numbern,m);elseprintf(%d is not a prime numbern,m);運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:上一頁上一頁下一頁下一頁返返 回回5.5.2 continue語句語句continue語句的一般形式為:語句的一般形式為: contin
20、ue; 該語句只能用在循環(huán)體中,執(zhí)行該語句則結(jié)束本次循環(huán),再去判斷該語句只能用在循環(huán)體中,執(zhí)行該語句則結(jié)束本次循環(huán),再去判斷是否繼續(xù)下次循環(huán)。該語句通常是用于循環(huán)體中是否繼續(xù)下次循環(huán)。該語句通常是用于循環(huán)體中if語句內(nèi),即滿足某種語句內(nèi),即滿足某種條件才結(jié)束本次循環(huán)。條件才結(jié)束本次循環(huán)。 continue語句和語句和break語句的區(qū)別是:語句的區(qū)別是:continue語句只結(jié)束本次語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而break語句則是結(jié)束整個(gè)循環(huán)過語句則是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。程,不再判斷執(zhí)行循環(huán)的條件是否成立?!纠?/p>
21、例5.8】把】把100200之間的不能被之間的不能被3整除的數(shù)輸出,每行輸出整除的數(shù)輸出,每行輸出10個(gè)數(shù)。個(gè)數(shù)。 【編程思路】【編程思路】(1)定義一個(gè)循環(huán)控制變量和統(tǒng)計(jì)輸出數(shù)量的變量)定義一個(gè)循環(huán)控制變量和統(tǒng)計(jì)輸出數(shù)量的變量 。(2)循環(huán)的初值和終值分別取)循環(huán)的初值和終值分別取100和和200。(3)用對(duì))用對(duì)3取余的運(yùn)算判斷是否能被取余的運(yùn)算判斷是否能被3整除。整除。【程序代碼】【程序代碼】#include stdio.hmain( ) int n,s=0;for(n=100;n=200;n+) if(n%3=0)continue;printf( %d,n);s+;if(s%10=0)
22、 printf(n); printf(n);上一頁上一頁下一頁下一頁返返 回回說明:在說明:在while語句和語句和do-while語句中,語句中,continue語句使得流程直接跳到循語句使得流程直接跳到循環(huán)控制條件的測(cè)試部分,然后決定循環(huán)是否繼續(xù)進(jìn)行。在環(huán)控制條件的測(cè)試部分,然后決定循環(huán)是否繼續(xù)進(jìn)行。在for循環(huán)中,遇到循環(huán)中,遇到continue后,流程跳過循環(huán)體中余下的語句,而去對(duì)后,流程跳過循環(huán)體中余下的語句,而去對(duì)for語句中的語句中的“表達(dá)式表達(dá)式3”求值,然后進(jìn)行求值,然后進(jìn)行“表達(dá)式表達(dá)式2”的條件測(cè)試,最后根據(jù)的條件測(cè)試,最后根據(jù)“表達(dá)式表達(dá)式2”的值來決的值來決定定for
23、語句是否執(zhí)行。語句是否執(zhí)行。上一頁上一頁下一頁下一頁返返 回回運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:5.6 循環(huán)結(jié)構(gòu)應(yīng)用舉例循環(huán)結(jié)構(gòu)應(yīng)用舉例【例【例5.9】輸出九九表,格式如下:】輸出九九表,格式如下:上一頁上一頁下一頁下一頁返返 回回【編程思路】【編程思路】(1)用雙重循環(huán)實(shí)現(xiàn),外循環(huán)控制行數(shù),內(nèi)循環(huán)控制列數(shù)。)用雙重循環(huán)實(shí)現(xiàn),外循環(huán)控制行數(shù),內(nèi)循環(huán)控制列數(shù)。(2)定義變量)定義變量i表示行數(shù),作外循環(huán)的循環(huán)控制變量,使其從表示行數(shù),作外循環(huán)的循環(huán)控制變量,使其從1到到9遞增。遞增。(3)定義)定義j表示列數(shù),作內(nèi)循環(huán)的循環(huán)控制變量,從表示列數(shù),作內(nèi)循環(huán)的循環(huán)控制變量,從1到到i遞增。遞增?!境绦虼a
24、】【程序代碼】#include main( )int i,j;for(i=1;i10;i+) for(j=1;j=1e-6,其中,其中fabs是用來求絕對(duì)值的函數(shù),但使是用來求絕對(duì)值的函數(shù),但使用前在代碼前要用用前在代碼前要用#include 對(duì)對(duì)math.h頭文件進(jìn)行包含。頭文件進(jìn)行包含。上一頁上一頁下一頁下一頁返返 回回315171【程序代碼】【程序代碼】#include stdio.h#include math.hmain( ) int s; float n,t,pi; t=1;pi=0;n=1;s=1; while(fabs(t)=1e-6) pi=pi+t; n=n+2; s = -
25、s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi);運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: 上一頁上一頁下一頁下一頁返返 回回【例【例5.11】求】求100200間的全部素?cái)?shù),每行輸出間的全部素?cái)?shù),每行輸出10個(gè)。個(gè)。【編程思路】【編程思路】(1)定義一個(gè)循環(huán)控制變量)定義一個(gè)循環(huán)控制變量m其取值從其取值從101到到200,循環(huán)增量為,循環(huán)增量為2,因?yàn)榇耍驗(yàn)榇朔秶鷥?nèi)的素?cái)?shù)一定為奇數(shù),定義一個(gè)統(tǒng)計(jì)素?cái)?shù)個(gè)數(shù)的變量范圍內(nèi)的素?cái)?shù)一定為奇數(shù),定義一個(gè)統(tǒng)計(jì)素?cái)?shù)個(gè)數(shù)的變量n,初值為,初值為0,通,通過對(duì)過對(duì)10取余運(yùn)算可控制每行輸出取余運(yùn)算可控制每行輸出10個(gè)。個(gè)。(2)用每個(gè)循環(huán)變
26、量除以)用每個(gè)循環(huán)變量除以2到該變量的平方根之間的每一個(gè)數(shù),若都除不到該變量的平方根之間的每一個(gè)數(shù),若都除不盡,則該變量所存放的數(shù)為素?cái)?shù)。盡,則該變量所存放的數(shù)為素?cái)?shù)。(3)平方根的函數(shù)為)平方根的函數(shù)為sqrt(),其對(duì)應(yīng)的頭文件為,其對(duì)應(yīng)的頭文件為math.h“【程序代碼】【程序代碼】#include stdio.h#include math.hmain( ) int m,k,i,n=0; for(m=101;m=200;m=m+2)k=sqrt(m);上一頁上一頁下一頁下一頁返返 回回for(i=2;i=k+1) printf(%d ,m); n=n+1; if(n%10=0) prin
27、tf(n);printf(n);運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:【例【例5.12】求】求Fibonacci數(shù)列前數(shù)列前20項(xiàng),這個(gè)數(shù)列有如下的特點(diǎn):第項(xiàng),這個(gè)數(shù)列有如下的特點(diǎn):第1,2兩個(gè)兩個(gè)數(shù)為數(shù)為1,1。從第。從第3個(gè)數(shù)開始,每一個(gè)數(shù)都是其前面兩個(gè)數(shù)之和。即:個(gè)數(shù)開始,每一個(gè)數(shù)都是其前面兩個(gè)數(shù)之和。即:F(1)=1 (n=1)F(2)=1 (n=2)F(n)=F(n-1)+F(n-2) (n3)上一頁上一頁下一頁下一頁返返 回回【編程思路】【編程思路】(1)本題屬于遞推問題。即不斷地用舊值推算出新值,在程序中表現(xiàn)為不)本題屬于遞推問題。即不斷地用舊值推算出新值,在程序中表現(xiàn)為不斷地用新值取代舊
28、值的過程。斷地用新值取代舊值的過程。(2)定義循環(huán)變量)定義循環(huán)變量n,用來表示數(shù)列的項(xiàng),由于前兩項(xiàng)已經(jīng)給出,所以,用來表示數(shù)列的項(xiàng),由于前兩項(xiàng)已經(jīng)給出,所以n從從3開始。開始。(3)定義變量)定義變量f1、f2、fn,每次計(jì)算完通項(xiàng)后,那么在計(jì)算下一項(xiàng)時(shí),原,每次計(jì)算完通項(xiàng)后,那么在計(jì)算下一項(xiàng)時(shí),原來的來的f2就成為新的就成為新的f1,剛計(jì)算出的,剛計(jì)算出的fn就成為新的就成為新的f2。(4)為了更清晰地輸出數(shù)列,每行輸出)為了更清晰地輸出數(shù)列,每行輸出4個(gè)數(shù)。個(gè)數(shù)。【程序代碼】【程序代碼】#include stdio.hmain( )int f1=1,f2=1,n,fn;printf(%12d%12d,f1,f2);for(n=3;n=20;n+) fn=f1+f2;f1=f2;f2=fn;printf(%12d,fn);if(n%5=0) printf(n); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:上一頁上一頁下一頁下一頁返返 回回通過本章的學(xué)習(xí),讀者應(yīng)掌握以下內(nèi)容:通過本章的學(xué)習(xí),讀者應(yīng)掌握以下內(nèi)容:(1)循環(huán)結(jié)構(gòu)。反復(fù)執(zhí)行循環(huán)體中的各語句,設(shè)計(jì)循環(huán)結(jié)構(gòu)的關(guān)鍵是給出正)循環(huán)結(jié)構(gòu)。反復(fù)執(zhí)行循環(huán)體中的各語句,設(shè)計(jì)循環(huán)結(jié)構(gòu)的關(guān)鍵是給出正確的循環(huán)條件及循環(huán)體中各語句。確的循環(huán)條件及
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 東風(fēng)日產(chǎn)電池轉(zhuǎn)讓合同范本
- 農(nóng)村搬遷合同范例
- 中廳拆除合同范例
- 公關(guān)公司合同范例
- 主題營地設(shè)計(jì)合同范本
- 公司傭金合同范例
- 合伙開學(xué)校合同范本
- 倉儲(chǔ)承包協(xié)議合同范例
- 第2課《濟(jì)南的冬天》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版語文七年級(jí)上冊(cè)
- 加工白板定做合同范例
- (高清版)外墻外保溫工程技術(shù)標(biāo)準(zhǔn)JGJ144-2019
- 機(jī)電控制與可編程序控制器課程設(shè)計(jì)報(bào)告
- 簡(jiǎn)版?zhèn)€人征信報(bào)告模板
- 森林防火主題教育班會(huì)PPT
- 船舶安檢缺陷處理建議表籍國內(nèi)航行海船
- 輻照交聯(lián)電線電纜型號(hào)說明
- 公路工程決算編制辦法(交公路發(fā)2004-507號(hào))附表
- 礦山機(jī)械無人駕駛項(xiàng)目可行性研究報(bào)告模板
- 預(yù)充氣競(jìng)技步槍 標(biāo)準(zhǔn)A4靶紙
- 避免同業(yè)競(jìng)爭(zhēng)承諾函
- 產(chǎn)品批量質(zhì)量事故追責(zé)管理規(guī)范
評(píng)論
0/150
提交評(píng)論