C++語(yǔ)言程序設(shè)計(jì)電子教案5_第1頁(yè)
C++語(yǔ)言程序設(shè)計(jì)電子教案5_第2頁(yè)
C++語(yǔ)言程序設(shè)計(jì)電子教案5_第3頁(yè)
C++語(yǔ)言程序設(shè)計(jì)電子教案5_第4頁(yè)
C++語(yǔ)言程序設(shè)計(jì)電子教案5_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版第第5章章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 5.1 while循環(huán)語(yǔ)句循環(huán)語(yǔ)句 5.2 do-while循環(huán)語(yǔ)句循環(huán)語(yǔ)句 5.3 for循環(huán)語(yǔ)句循環(huán)語(yǔ)句 5.4 多重循環(huán)多重循環(huán) 5.5 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句 5.6 goto語(yǔ)句和標(biāo)號(hào)語(yǔ)句和標(biāo)號(hào) 5.7 程序舉例程序舉例 教材上的教材上的第二章第二章2.5中的一部中的一部分分(2.5.5)第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版5.1 while循環(huán)語(yǔ)句循環(huán)語(yǔ)句(格式格式1) 1. 格式格式: (a)(b)表達(dá)式當(dāng)表達(dá)式

2、為真循環(huán)體不滿(mǎn)足循環(huán)體滿(mǎn)足圖圖 5.1 while循環(huán)循環(huán) 2. 功功能能圖圖 3. 執(zhí)行過(guò)程:先計(jì)算執(zhí)行過(guò)程:先計(jì)算while后面圓括號(hào)內(nèi)表達(dá)式的值,后面圓括號(hào)內(nèi)表達(dá)式的值,如果其值為如果其值為“真真”(非非0),則,則執(zhí)行語(yǔ)句部分執(zhí)行語(yǔ)句部分(即循環(huán)體即循環(huán)體),然后再計(jì)算表達(dá)式的值,并然后再計(jì)算表達(dá)式的值,并重復(fù)上述過(guò)程,直到表達(dá)式重復(fù)上述過(guò)程,直到表達(dá)式的值為的值為“假假”(0)時(shí),循環(huán)結(jié)時(shí),循環(huán)結(jié)束。束。 注意:注意:while循環(huán)中的表達(dá)循環(huán)中的表達(dá)式 一 般 是 關(guān) 系 表 達(dá) 式式 一 般 是 關(guān) 系 表 達(dá) 式 ( 如如i0)個(gè)個(gè)數(shù)數(shù),求其和。求其和。 starti=1;su

3、m=0;in sum=sum+k; i+;stop讀入n讀入k輸出sumNY圖圖 5.2 求求n個(gè)數(shù)的和的個(gè)數(shù)的和的程序框圖程序框圖(細(xì)框細(xì)框)輸入輸入處理處理輸出輸出編程粗框三部曲編程粗框三部曲第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版#include /#include void main() int i, n, x, sum; i=1; sum=0; /定義計(jì)數(shù)定義計(jì)數(shù)/累加器累加器 printf(Input:);/coutn; while(ix; sum=sum+x; /循環(huán)求和循環(huán)求和 i+; /循環(huán)計(jì)數(shù)循環(huán)計(jì)數(shù) printf(nsum is: %dn, s

4、um);/coutendl“sum is:”sumendl; 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input: 612 34 2 11 9 5sum is: 73解:解:設(shè)計(jì)一個(gè)計(jì)數(shù)變量設(shè)計(jì)一個(gè)計(jì)數(shù)變量/器器i,用以計(jì)算循環(huán)的次數(shù),其用以計(jì)算循環(huán)的次數(shù),其初始值設(shè)為初始值設(shè)為1,設(shè)計(jì)一個(gè)求,設(shè)計(jì)一個(gè)求和變量和變量/累加器累加器sum,初始,初始值值sum=0;在循環(huán)中,每;在循環(huán)中,每輸入一個(gè)數(shù)輸入一個(gè)數(shù)x就累加上去:就累加上去: sum=sum+x; 注意:注意:程序程序中黑色的為中黑色的為C語(yǔ)言;藍(lán)色的語(yǔ)言;藍(lán)色的為為C+語(yǔ)言。語(yǔ)言。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例

5、例5.2從鍵盤(pán)連續(xù)輸入字符,直到輸入從鍵盤(pán)連續(xù)輸入字符,直到輸入“回車(chē)回車(chē)”符符為止,為止,統(tǒng)計(jì)輸入的字符個(gè)數(shù)。統(tǒng)計(jì)輸入的字符個(gè)數(shù)。 startlen=0;(ch=getch()!=/ rstop輸出lenNYlen+圖圖5.3統(tǒng)計(jì)統(tǒng)計(jì)輸入輸入字符字符的個(gè)的個(gè)數(shù)的數(shù)的程序程序框圖框圖第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 #include void main() char ch; int len=0; /字符字符計(jì)數(shù)變量計(jì)數(shù)變量/器初始化器初始化 puts(Type in a sentence, then press n); while (ch=getch()!=

6、r) putchar(ch);/將剛鍵入的字符輸出將剛鍵入的字符輸出 len+; printf(nSentence is %d characters long.n, len); 運(yùn)行結(jié)果: Type in a sentence, then press this is a sentence.Sentence is 19 characters long. 包含空格包含空格賦值表達(dá)式賦值表達(dá)式第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版5.2 do-while循環(huán)語(yǔ)句循環(huán)語(yǔ)句(格式格式2) 1. 格式格式 (a)(b)表達(dá)式不滿(mǎn)足滿(mǎn)足直到表達(dá)式為假循環(huán)體循環(huán)體圖圖5.4 do

7、-while循環(huán)循環(huán) 2. 功能圖功能圖 3. 執(zhí)行過(guò)程執(zhí)行過(guò)程(先執(zhí)行先執(zhí)行后判定后判定) :先執(zhí)行循環(huán)體:先執(zhí)行循環(huán)體中的語(yǔ)句,然后計(jì)算表中的語(yǔ)句,然后計(jì)算表達(dá)式的值;若表達(dá)式的達(dá)式的值;若表達(dá)式的值為值為“真真”(非非0),則再,則再次執(zhí)行循環(huán)體;如此重次執(zhí)行循環(huán)體;如此重復(fù),直至表達(dá)式的值為復(fù),直至表達(dá)式的值為“假假”(0)時(shí)結(jié)束循環(huán)。時(shí)結(jié)束循環(huán)。注意:注意:與與while語(yǔ)句語(yǔ)句(先判先判定后執(zhí)行定后執(zhí)行)比較。比較。 例例 5.3 利用利用dowhile語(yǔ)句重做例語(yǔ)句重做例5.1。 do 語(yǔ)句塊語(yǔ)句塊 (即循環(huán)體即循環(huán)體) while (表達(dá)式表達(dá)式); 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)

8、結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 starti=1;sum=0; sum=sum+k; i+;stop讀入n讀入k輸出sumNYin圖圖5.5求求n個(gè)數(shù)和的個(gè)數(shù)和的程序框圖程序框圖 #include void main() int i, n, k, sum; i=1; sum=0; printf(Input n: ); scanf(%d, &n); do scanf(%d, &k); sum=sum+k; i+; while(i=n); printf(sum is: %dn, sum); 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 5.3 f

9、or循環(huán)語(yǔ)句循環(huán)語(yǔ)句 1. 格式:格式: (a)(b)表達(dá)式2不滿(mǎn)足滿(mǎn)足求解表達(dá)式1求解表達(dá)式1當(dāng)表達(dá)式2為真循環(huán)體求解表達(dá)式3循環(huán)體求解表達(dá)式3圖圖5.6 for循環(huán)循環(huán)2. 功能圖功能圖for (表達(dá)式表達(dá)式1; 表達(dá)式表達(dá)式2; 表達(dá)式表達(dá)式3) 語(yǔ)句塊語(yǔ)句塊 (即循環(huán)體即循環(huán)體) 3. 執(zhí)行過(guò)程:執(zhí)行過(guò)程: (1)首先求解表達(dá)式首先求解表達(dá)式1(一般為一般為對(duì)循環(huán)變量賦初值,如對(duì)循環(huán)變量賦初值,如i=1)。 (2)求解表達(dá)式求解表達(dá)式2 (一般為判一般為判斷循環(huán)變量超過(guò)終值,如斷循環(huán)變量超過(guò)終值,如i=50),若其值為,若其值為“真真”(非非0), 則執(zhí)行循環(huán)體中的語(yǔ)句,則執(zhí)行循環(huán)體中

10、的語(yǔ)句,然后執(zhí)行第然后執(zhí)行第(3)步;若為步;若為“假假”(0), 則結(jié)束循環(huán),轉(zhuǎn)則結(jié)束循環(huán),轉(zhuǎn)至第至第(5)步。步。 (3)求解表達(dá)式求解表達(dá)式3 (一般為對(duì)一般為對(duì)循環(huán)變量確定步長(zhǎng)循環(huán)變量確定步長(zhǎng),如如i=i+1)。 (4)至第至第(2)步重復(fù)執(zhí)行。步重復(fù)執(zhí)行。 (5)執(zhí)行執(zhí)行for循環(huán)語(yǔ)句的下一循環(huán)語(yǔ)句的下一語(yǔ)句。語(yǔ)句。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例如例如: for (i=1; i=50; i+) sum=sum+i; for語(yǔ)句可與語(yǔ)句可與while語(yǔ)句等價(jià):語(yǔ)句等價(jià): 表達(dá)式表達(dá)式1; while (表達(dá)式表達(dá)式2) 語(yǔ)句;表達(dá)式語(yǔ)句;表達(dá)式3

11、;例例 5.4 利用for語(yǔ)句重做例5.1。 include void main() int i, n, k, sum=0; printf(Input n: ); scanf(%d, &n); for (i=1; i=n; i+) scanf(%d, &k); sum=sum+k; printf(sum:%dn, sum); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input n: 67 11 20 5 2 19Sum: 64for語(yǔ)句最簡(jiǎn)單的應(yīng)用形式,也是最容易理解的形式:語(yǔ)句最簡(jiǎn)單的應(yīng)用形式,也是最容易理解的形式: for (循環(huán)變量賦初值循環(huán)變量賦初值; 循環(huán)條件循環(huán)條件; 循環(huán)變量增值循

12、環(huán)變量增值) 語(yǔ)句塊語(yǔ)句塊(循環(huán)體循環(huán)體) 或或+i第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例例 5.5 計(jì)算計(jì)算1至至50中是中是7的倍數(shù)的數(shù)值之和。的倍數(shù)的數(shù)值之和。 #include void main() int i,sum=0;/定義循變和累加器定義循變和累加器 for (i=1; i=50; i+) if (i%7= =0) sum+=i; printf(sum=%dn, sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果: sum=196 說(shuō)明說(shuō)明: 1)表達(dá)式表達(dá)式3的增量的增量(此例為此例為正方向正方向)或減量或減量(負(fù)方向,如此負(fù)方向,如此例可改例可改“for (i=

13、1; i=1; i-)”)與循與循環(huán)變量的初值和終值有關(guān);環(huán)變量的初值和終值有關(guān);2)for語(yǔ)句的循環(huán)次數(shù)是可計(jì)算語(yǔ)句的循環(huán)次數(shù)是可計(jì)算的,而的,而while語(yǔ)句的循環(huán)次數(shù)一語(yǔ)句的循環(huán)次數(shù)一般是不可計(jì)算的般是不可計(jì)算的(按條件循環(huán)按條件循環(huán))。 實(shí)例實(shí)例 見(jiàn)見(jiàn)“VC+實(shí)例實(shí)例/一般程序一般程序/基本循環(huán)編程基本循環(huán)編程求求a+aa+aaa+”和和“C+級(jí)數(shù)級(jí)數(shù)(方一循環(huán)方二數(shù)組方一循環(huán)方二數(shù)組)”終值終值 初值初值步長(zhǎng)步長(zhǎng)+1)循環(huán)次數(shù)循環(huán)次數(shù)=int (比較:比較:對(duì)循環(huán)次數(shù)確定對(duì)循環(huán)次數(shù)確定的用的用for循環(huán)語(yǔ)句;對(duì)循循環(huán)語(yǔ)句;對(duì)循環(huán)次數(shù)不確定的用環(huán)次數(shù)不確定的用while循環(huán)語(yǔ)句循環(huán)語(yǔ)句

14、(使用條件使用條件)。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版5.4 多重循環(huán)多重循環(huán)或循環(huán)嵌套或循環(huán)嵌套 當(dāng)一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)時(shí),稱(chēng)為多當(dāng)一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu)時(shí),稱(chēng)為多重循環(huán)或循環(huán)嵌套,其循環(huán)結(jié)構(gòu)重循環(huán)或循環(huán)嵌套,其循環(huán)結(jié)構(gòu)可用上述三種循環(huán)語(yǔ)句的任意可用上述三種循環(huán)語(yǔ)句的任意一種。一種。 例如,下面是兩種循環(huán)嵌套的示意圖。例如,下面是兩種循環(huán)嵌套的示意圖。 (1) while ( ) while ( ) (2) for (; ; ) do while( ); 外循環(huán)外循環(huán)內(nèi)循環(huán)內(nèi)循環(huán)(3) for (i=1; ; ) for

15、(j=1; ; ) 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 說(shuō)明說(shuō)明:(1) 循環(huán)嵌套中的各循環(huán)變量不能同名;循環(huán)嵌套中的各循環(huán)變量不能同名; 而并行循環(huán)的循環(huán)變量而并行循環(huán)的循環(huán)變量可同名??赏?。(2) 對(duì)對(duì)循環(huán)嵌套,當(dāng)內(nèi)循環(huán)循環(huán)完畢時(shí),外循環(huán)才開(kāi)始下一輪循循環(huán)嵌套,當(dāng)內(nèi)循環(huán)循環(huán)完畢時(shí),外循環(huán)才開(kāi)始下一輪循環(huán),此時(shí),內(nèi)循環(huán)又從頭開(kāi)始循環(huán);故內(nèi)循環(huán)的總次數(shù)為內(nèi)環(huán),此時(shí),內(nèi)循環(huán)又從頭開(kāi)始循環(huán);故內(nèi)循環(huán)的總次數(shù)為內(nèi)外循環(huán)次數(shù)之積。外循環(huán)次數(shù)之積。 for (i=1; ; ) for (j=1; ; ) for (i=1; ; ) for (i=1; ; ) for(

16、i=1;i=10;+i ) for(j=1;j=10;+j ) 外循環(huán)循環(huán)外循環(huán)循環(huán)10次次;內(nèi)循環(huán)內(nèi)循環(huán)循環(huán)循環(huán)10*10=100次。次。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例例 5.6 輸出如下頁(yè)的九九表。輸出如下頁(yè)的九九表。 循環(huán)循環(huán)9次輸出次輸出19的表頭的表頭外循環(huán)控制外循環(huán)控制9行行(乘數(shù)乘數(shù)i)內(nèi)循環(huán)控制內(nèi)循環(huán)控制9列列(被乘數(shù)被乘數(shù)j)若是第若是第9列,則換行,否則續(xù)行輸出列,則換行,否則續(xù)行輸出應(yīng)改為應(yīng)改為: include void main()第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版i:j:改內(nèi)循環(huán)的初或改內(nèi)循環(huán)

17、的初或終值為外循環(huán)的終值為外循環(huán)的循變的函數(shù)及輸循變的函數(shù)及輸出格式出格式,如如:該內(nèi)該內(nèi)循環(huán)控制語(yǔ)句為循環(huán)控制語(yǔ)句為for(j=1;ji;j+)則為左下三角形。則為左下三角形。實(shí)例見(jiàn)實(shí)例見(jiàn)“VC+實(shí)例實(shí)例/一般程序一般程序/基本循環(huán)編程基本循環(huán)編程/九九乘法表九九乘法表”每個(gè)元素每個(gè)元素值為值為i*j第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 5.5 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句 5.5.1 break語(yǔ)句語(yǔ)句 1. 格式格式 :break; 2. 功能:功能:跳出跳出(或終止或終止)它所在的最近的循環(huán)語(yǔ)句或它所在的最近的循環(huán)語(yǔ)句或switch結(jié)構(gòu)

18、。結(jié)構(gòu)。 3. 注意問(wèn)題:注意問(wèn)題: (1)break語(yǔ)句只能用于語(yǔ)句只能用于switch結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,且多和結(jié)構(gòu)或循環(huán)結(jié)構(gòu)中,且多和if語(yǔ)句配用,例在程序中有下列語(yǔ)句:語(yǔ)句配用,例在程序中有下列語(yǔ)句: if () break; 則此時(shí)的則此時(shí)的if語(yǔ)句一定位于循環(huán)體中或語(yǔ)句一定位于循環(huán)體中或switch結(jié)構(gòu)中,結(jié)構(gòu)中,break語(yǔ)語(yǔ)句跳出的也不是句跳出的也不是if語(yǔ)句,而語(yǔ)句,而是跳出包含此是跳出包含此if語(yǔ)句的循環(huán)結(jié)構(gòu)或語(yǔ)句的循環(huán)結(jié)構(gòu)或switch結(jié)構(gòu)。結(jié)構(gòu)。 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 (2)在循環(huán)語(yǔ)句嵌套使用的情況下,)在循環(huán)語(yǔ)句嵌套使用的

19、情況下, break語(yǔ)句只能語(yǔ)句只能跳出跳出(或終止或終止)它所在的循環(huán)或它最近的循環(huán)語(yǔ)句它所在的循環(huán)或它最近的循環(huán)語(yǔ)句(有循環(huán)嵌有循環(huán)嵌套時(shí)套時(shí)),而不能同時(shí)跳出,而不能同時(shí)跳出(或終止或終止)多層循環(huán),如:多層循環(huán),如: for () for () break; 跳跳至至第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 例例5.7計(jì)算計(jì)算r=1到到r=10間的圓面積間的圓面積,直到面積直到面積area大于大于100為止。為止。 #define PI 3.1415926#include void main() int r; float area; for (r=1; r1

20、00) break; printf(r: %d area is: %fn, r, area); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: r: 1 area is: 3.1415930r: 2 area is: 12.566370r: 3 area is: 28.274334r: 4 area is: 50.265480r: 5 area is: 78.539818 問(wèn)題:?jiǎn)栴}:1、此例實(shí)際循環(huán)六次此例實(shí)際循環(huán)六次(即計(jì)算了六次即計(jì)算了六次, 第六次第六次因因area100而跳出循環(huán)而跳出循環(huán)),但輸出了五次。,但輸出了五次。2、若改題若改題為為“計(jì)算計(jì)算r=1、2、3的圓面積,直到面積的圓面積,直到面積area

21、大于大于100為止為止”則只能用則只能用“while”語(yǔ)句,同學(xué)們自編。語(yǔ)句,同學(xué)們自編。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 5.5.2 continue語(yǔ)句語(yǔ)句 continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。面尚未執(zhí)行的語(yǔ)句,直接進(jìn)行下一次是否執(zhí)行循環(huán)的判定。 continue語(yǔ)句的一般形式如下:語(yǔ)句的一般形式如下: continue; 其執(zhí)行過(guò)程是:終止當(dāng)前這一輪循環(huán),即跳過(guò)循環(huán)體中其執(zhí)行過(guò)程是:終止當(dāng)前這一輪循環(huán),即跳過(guò)循環(huán)體中位于位于continu

22、e后面的語(yǔ)句而立即開(kāi)始下一輪循環(huán);對(duì)于后面的語(yǔ)句而立即開(kāi)始下一輪循環(huán);對(duì)于while和和do-while來(lái)講,這意味著立即執(zhí)行條件測(cè)試部分,而對(duì)于來(lái)講,這意味著立即執(zhí)行條件測(cè)試部分,而對(duì)于for語(yǔ)句來(lái)講,則意味著立即求解表達(dá)式語(yǔ)句來(lái)講,則意味著立即求解表達(dá)式3。 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例例5.8輸出輸出100到到150之間不能被之間不能被3整除的數(shù)整除的數(shù), 要要求一行輸出求一行輸出10個(gè)數(shù)。個(gè)數(shù)。#include void main() int n, i=0; for (n=100; n=150; n+) if (n%3= =0) continu

23、e; printf(%4d, n); i+; /每行的列數(shù)計(jì)數(shù)每行的列數(shù)計(jì)數(shù) if (i%10= =0) printf (n); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 100 101 103 104 106 107 109 110 112 113115 116 118 119 121 122 124 125 127 128130 131 133 134 136 137 139 140 142 143145 146 148 149 if (n%30) printf(%4d, n); i+; /每行的列數(shù)計(jì)數(shù)每行的列數(shù)計(jì)數(shù) if (i%10=0) printf (n); 等等 價(jià)價(jià)第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的

24、C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 5.6 goto語(yǔ)句和標(biāo)號(hào)語(yǔ)句和標(biāo)號(hào) goto語(yǔ)句為無(wú)條件轉(zhuǎn)向語(yǔ)句,程序中使用goto語(yǔ)句時(shí)要求和標(biāo)號(hào)配合, 它們的一般形式為 goto 標(biāo)號(hào)標(biāo)號(hào); 標(biāo)號(hào)標(biāo)號(hào): 語(yǔ)句;語(yǔ)句; C語(yǔ)言規(guī)定,goto語(yǔ)句的使用范圍僅局限于函數(shù)內(nèi)部,不允許在一個(gè)函數(shù)中使用goto語(yǔ)句把程序控制轉(zhuǎn)移到其它函數(shù)之內(nèi)。 一般來(lái)講,goto語(yǔ)句可以有兩種用途: (1) 與if語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu)。 (2) 退出多重循環(huán)。 例:例:goto label1; label1: 語(yǔ)句;語(yǔ)句;第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 5.7 程程 序序 舉舉 例例 例

25、例 5.9 用公式用公式 求出求出的近似值,的近似值, 直到最后一項(xiàng)的絕對(duì)值小于直到最后一項(xiàng)的絕對(duì)值小于10-6為為止。具體程序如下:止。具體程序如下: #include #include void main() int s; /定義每項(xiàng)的變量定義每項(xiàng)的變量 float n, t, pi; /定義每項(xiàng):定義每項(xiàng):n-每項(xiàng)分母;每項(xiàng)分母;t-每項(xiàng);每項(xiàng);pi- t=1;pi=0;n=1.0;s=1; /初始化初始化71513114第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 while (fabs(t)=1e-6) /當(dāng)每項(xiàng)的絕對(duì)值不小于當(dāng)每項(xiàng)的絕對(duì)值不小于10-6時(shí)循環(huán)

26、處理時(shí)循環(huán)處理 pi=pi+t; /累加下一項(xiàng)累加下一項(xiàng) n=n+2; /準(zhǔn)備下一項(xiàng)分母準(zhǔn)備下一項(xiàng)分母 s=-s; /準(zhǔn)備下一項(xiàng)的符號(hào)準(zhǔn)備下一項(xiàng)的符號(hào) t=s/n; /求出下一項(xiàng)求出下一項(xiàng)t pi=pi*4; /求出求出 printf(“pi=%10.6fn”,pi); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: pi= 3.141594 實(shí)例見(jiàn)實(shí)例見(jiàn)“VC+實(shí)例實(shí)例一般程序一般程序C+應(yīng)用舉例應(yīng)用舉例(雙重循環(huán)雙重循環(huán))”下的下的“c+雙雙重循環(huán)求素?cái)?shù)重循環(huán)求素?cái)?shù)”和和“雙重循環(huán)求完雙重循環(huán)求完數(shù)數(shù)”問(wèn)題:?jiǎn)栴}:1、 pi=pi+t; 和和n=n+2; 順序調(diào)換可否?順序調(diào)換可否?2、 s=-s; 和和t=s/n

27、;順序順序調(diào)換可否?調(diào)換可否?第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版例例 5.10 從鍵盤(pán)輸入一個(gè)大于從鍵盤(pán)輸入一個(gè)大于2的整數(shù)的整數(shù)n,判斷,判斷n是不是是不是素?cái)?shù)。素?cái)?shù)。 #include #include void main() int n, k, i, flag=0; /定義是否素?cái)?shù)標(biāo)志定義是否素?cái)?shù)標(biāo)志 do/保證保證(反復(fù)反復(fù))輸入大于輸入大于2的整數(shù)的整數(shù)n printf(Input a number: ); scanf(%d, &n); while(n=2); k=sqrt(double)n); /取其浮點(diǎn)數(shù)的平方根取其浮點(diǎn)數(shù)的平方根 fla

28、g=1; /設(shè)為素?cái)?shù)的標(biāo)志設(shè)為素?cái)?shù)的標(biāo)志 for (i=2; i=k; i+) /從從2到到k循環(huán)判斷是否有整除循環(huán)判斷是否有整除素?cái)?shù)的定義:素?cái)?shù)的定義:某某個(gè)整數(shù)個(gè)整數(shù)n是素?cái)?shù),是素?cái)?shù),則它不能被則它不能被2至至 n 整除。整除。n為整數(shù);為整數(shù);k為循環(huán)上為循環(huán)上界;界;i為循環(huán)變量;為循環(huán)變量;第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版if (n%i= =0) flag=0; break; /* 有一數(shù)能整除就不是素?cái)?shù)有一數(shù)能整除就不是素?cái)?shù),不再循環(huán)不再循環(huán) */ if (flag) /等價(jià)于等價(jià)于“flag=1” printf(%d is a prime nu

29、mber.n, n); else printf(%d is not a prime number.n, n); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: Input a number: 3535 is not a prime number. 注意:注意:初始設(shè)素?cái)?shù)標(biāo)志為是素初始設(shè)素?cái)?shù)標(biāo)志為是素?cái)?shù)數(shù)(flag=1;)好處理;若設(shè)好處理;若設(shè)素?cái)?shù)素?cái)?shù)標(biāo)志為不是素?cái)?shù)標(biāo)志為不是素?cái)?shù)(flag=0;)不好不好處理處理(因要判定都不能整除因要判定都不能整除)。第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 例例 5.11 用牛頓迭代法求方程用牛頓迭代法求方程2x3- -4x2+3x- -6=0的根的根,

30、要,要求誤差小于求誤差小于10- -5。 從圖5.7可以看出: )/()()( 1kkkkxxxfxf因此, )( / )(1kkkkxfxfxx令f(x)=2x3-4x2+3x-6可寫(xiě)成以下形式: f(x)=(2x-4)x+3)x-6 第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版圖 5.7 用牛頓迭代法求方程的根 -3-2-10100200Y-100 xk+2x*xk+1xkf(xk+1)xf(xk)f(x)第第5章章 循環(huán)結(jié)構(gòu)的循環(huán)結(jié)構(gòu)的C程序設(shè)計(jì)程序設(shè)計(jì) YYHYYH版版 具體程序如下: #include #include void main() float x, x0, f,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論