第05章_循環(huán)loop_第1頁(yè)
第05章_循環(huán)loop_第2頁(yè)
第05章_循環(huán)loop_第3頁(yè)
第05章_循環(huán)loop_第4頁(yè)
第05章_循環(huán)loop_第5頁(yè)
已閱讀5頁(yè),還剩65頁(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、C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)1 1 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)2 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)3 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)4 if (age 18) if (age 55) price = 2.50; /* Price for senior citizens */ else price = 5.00; /* Price for adults */ else if (age 1) price = 0.0; /* Price for infants */ else price = 1.50; /* for children break; case 2: printf(“Februaryn”); br

2、eak; case 3: printf(“Marchn”); break; default: printf(“Othersn”); break; printf(“End”); C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)6 例例1 考慮下面程序輸出結(jié)果考慮下面程序輸出結(jié)果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); 結(jié)果:-1 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)7 例例2 考慮下面程序輸出結(jié)果考慮下面程序輸出結(jié)果: int x=1,y=0

3、,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 結(jié)果:a=2,b=1 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)8 if else 配對(duì)原則:缺省 時(shí),else總是 和它上面離它最近的未配對(duì)的if配對(duì) if() if() if() else. else. else. 5.1 5.1 概述概述 5.2 5.2 用用whilewhile語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán) 5.3 5.3 用用do-

4、whiledo-while語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán) 5.4 5.4 用用for for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán) 5.5 5.5 循環(huán)的嵌套循環(huán)的嵌套 5.6 5.6 幾種循環(huán)的比較幾種循環(huán)的比較 5.7 break5.7 break語(yǔ)句和語(yǔ)句和continuecontinue語(yǔ)句語(yǔ)句 5.8 5.8 程程 序序 舉舉 例例 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)12 什么是循環(huán)?什么是循環(huán)? 為什么要使用循環(huán)?為什么要使用循環(huán)? 100 1n yn 問(wèn)題問(wèn)題1 1: 問(wèn)題問(wèn)題2:2: C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)13 if goto while do while for C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)14 C

5、ondition is tested firstCondition is tested later C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)15 false true Testing Condition First condition Step x Step y Step a Step n C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)16 Step a condition Step n Step x false true Step y Testing condition later C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)17 while語(yǔ)句用來(lái)實(shí)現(xiàn)“當(dāng)型”循環(huán)結(jié)構(gòu)。 一般形式:一般形式: while (while (表達(dá)式表達(dá)式) )

6、語(yǔ)句語(yǔ)句 當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語(yǔ) 句中的內(nèi)嵌語(yǔ)句。其特點(diǎn)是:先判斷表 達(dá)式,后執(zhí)行語(yǔ)句。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)18 While Loop Count ControlledEvent Controlled Exact number of loops Exit loop after “n” times Boolean Flag Sentinel Value Exit loop when condition = “False” condition = Sentinel Value C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)19 運(yùn)行結(jié)果:運(yùn)行結(jié)果:50505050 循環(huán)控制表 達(dá)式 循環(huán)控制變

7、量 初 值 (1)循環(huán)體如果包含一個(gè)以上 的語(yǔ)句,應(yīng)該用花括弧括起來(lái),以 復(fù)合語(yǔ)句形式出現(xiàn). (2)在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)循環(huán)趨向于結(jié) 束的語(yǔ)句束的語(yǔ)句 循環(huán) 體 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)20 scanf(“d%”,scanf(“d%”, While(i)While(i) ; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)21 Read one or more data in each loop When should we stop reading ? Instruct user to enter a unique number called “Sentinel Value” While(c=getch

8、ar()!=a)While(c=getchar()!=a) ; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)22 do-while語(yǔ)句的特點(diǎn):先執(zhí)行循環(huán)體,然后判斷循環(huán)條件 是否成立。 Statements in the loop are executed first at least once, and condition is tested last 一般形式一般形式: : do do 循環(huán)體語(yǔ)句 whilewhile (表達(dá)式); 執(zhí)行過(guò)程:執(zhí)行過(guò)程:先執(zhí)行一次指定的循環(huán)體語(yǔ)句,然后先執(zhí)行一次指定的循環(huán)體語(yǔ)句,然后 判別表達(dá)式,當(dāng)表達(dá)式的值為判別表達(dá)式,當(dāng)表達(dá)式的值為非零非零(“(“真真”) ) 時(shí)時(shí) ,

9、返回重新執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到,返回重新執(zhí)行循環(huán)體語(yǔ)句,如此反復(fù),直到 表達(dá)式的值等于表達(dá)式的值等于0 0為止,此時(shí)循環(huán)結(jié)束為止,此時(shí)循環(huán)結(jié)束。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)23 運(yùn)行結(jié)果:運(yùn)行結(jié)果:50505050 100 1n n 注意:這里有注意:這里有 個(gè)分號(hào)個(gè)分號(hào) C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)24 whilewhile語(yǔ)句和用語(yǔ)句和用do-whiledo-while語(yǔ)句的比較語(yǔ)句的比較: : 在一般情況下,用while語(yǔ)句和用do-while語(yǔ) 句處理同一問(wèn)題時(shí),若二者的循環(huán)體部分是一 樣的,它們的結(jié)果也一樣。但是如果while后面 的表達(dá)式一開(kāi)始就為假(0值)時(shí),兩種循環(huán)的結(jié)

10、果是不同的。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)25 100 1n n 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 11 sum=55 sum=55 再運(yùn)行一次:再運(yùn)行一次: 1111 sum=0sum=0 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 11 sum=55 sum=55 再運(yùn)行一次:再運(yùn)行一次: 1111 sum=11sum=11 (1)當(dāng)while后面的表達(dá)式的 第一次的值為“真”時(shí),兩種循 環(huán)得到的結(jié)果相同。否則,二者 結(jié)果不相同。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)26 思考題1:猜數(shù)游戲:先由計(jì)算機(jī)“想”一個(gè)數(shù)請(qǐng) 人猜,如果人猜對(duì)了,則計(jì)算機(jī)給出提示: “Right!”, 否則提示:“Wrong!”,并告訴人所猜 的數(shù)是大還是小。

11、 思考題2:先由計(jì)算機(jī)“想”一個(gè)1到100之間的數(shù) 請(qǐng)人猜,如果人猜對(duì)了,則結(jié)束游戲,否則計(jì)算機(jī) 給出提示,告訴人所猜的數(shù)是太大還是太小,直到 人猜對(duì)為止。計(jì)算機(jī)記錄人猜的次數(shù),以此來(lái)反映 猜數(shù)者“猜”的水平。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)27 隨機(jī)函數(shù)rand() #include RAND_MAX在stdlib.h中定義,不大于雙字節(jié)整數(shù)的最大值32767 產(chǎn)生0,RAND_MAX 之間的隨機(jī)數(shù) magic = rand(); 產(chǎn)生0,b-1 之間的隨機(jī)數(shù) magic = rand()%b; 產(chǎn)生a,a+b-1 之間的隨機(jī)數(shù) magic = rand()%b + a; 現(xiàn)場(chǎng)編程完成例思考題2

12、,發(fā)現(xiàn)問(wèn)題 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)28 隨機(jī)函數(shù)srand 為函數(shù)rand()設(shè)置隨機(jī)數(shù)種子來(lái)實(shí)現(xiàn)對(duì)函數(shù) rand所產(chǎn)生的偽隨機(jī)數(shù)的 “隨機(jī)化” 通過(guò)鍵入隨機(jī)數(shù)種子,產(chǎn)生0,100之間的 隨機(jī)數(shù) scanf(%u, srand(seed); magic = rand() % 100 + 1; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)29 C C語(yǔ)言中的語(yǔ)言中的forfor語(yǔ)句使用最為靈活,不僅可以用于語(yǔ)句使用最為靈活,不僅可以用于 循環(huán)次數(shù)已經(jīng)確定循環(huán)次數(shù)已經(jīng)確定的情況,而且可以用于的情況,而且可以用于循環(huán)次循環(huán)次 數(shù)不確定而只給出循環(huán)結(jié)束條件數(shù)不確定而只給出循環(huán)結(jié)束條件的情況,它完全的情況,它完全 可

13、以代替可以代替whilewhile語(yǔ)句語(yǔ)句。 一般形式一般形式: : Condition is tested first , Loop is controlled by a counter C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)30 forfor(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句 for (initial value ; condition; update counter) statement; statement; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)31 The C statements: int x, sum, i; sum = 0; for (i = 0; i 5; i+) scanf(“%d”, su

14、m = sum + x; printf(“%d”,sum); C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)32 forfor(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) 例如例如: : for(i=1;i=100;i+) sum=sum+i; 它相當(dāng)于以下語(yǔ)句: i=1; while(i=100) sum=sum+i;i+; 顯然,用for語(yǔ)句 簡(jiǎn)單、方便。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)33 (1) “表達(dá)式1”可以省略,但應(yīng)在for語(yǔ)句前給循環(huán)變 量賦初值。如 for(;i=100;i+) sum=sum+i; (2) 如果表達(dá)式2省略,循環(huán)無(wú)終止地進(jìn)行下去。 例如:例如:for(i=1; ;i+) sum=su

15、m+i; 相當(dāng)于: i=1; while(1) sum=sum+1;i+; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)34 (4) 可以省略表達(dá)式1和表達(dá)式3,只有表達(dá)式2,即只 給循環(huán)條件。如:如: for(;i=100;) while(i=100) sum=sum+i; 相當(dāng)于 sum=sum+i; i+; i+; 在這種情況下,完全等同于while語(yǔ)句??梢?jiàn)for語(yǔ)句 比while語(yǔ)句功能強(qiáng),除了可以給出循環(huán)條件外,還可 以賦初值,使循環(huán)變量自動(dòng)增值等。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)35 (5) 3個(gè)表達(dá)式都可省略,如:如: for(; ;) for(; ;) 語(yǔ)句語(yǔ)句 相當(dāng)于 while(1) whil

16、e(1) 語(yǔ)句語(yǔ)句 即不設(shè)初值,不判斷條件(認(rèn)為表達(dá)式2為真值),循環(huán)變量不增值。無(wú) 終止地執(zhí)行循環(huán)體。 (6) 表達(dá)式1也可以是與循環(huán)變量無(wú)關(guān)的其他表達(dá)式。 如如: : for (sum=0;i=100;i+) sum=sum+i; 表達(dá)式3也可以是與循環(huán)控制無(wú)關(guān)的任意表達(dá)式。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)36 (7)表達(dá)式1和表達(dá)式3也可以是逗號(hào)表達(dá)式。如:如: for(sum=0,i=1;i=100;i+) sum=sum+i; 或 for(i=0,j=100;i=j;i+,j-) k=i+j; 即同時(shí)設(shè)兩個(gè)初值,使兩個(gè)變量增值. 在逗號(hào)表達(dá)式內(nèi)按自左至右順序求解,整個(gè)逗號(hào)表達(dá)式在逗號(hào)表達(dá)

17、式內(nèi)按自左至右順序求解,整個(gè)逗號(hào)表達(dá)式 的值為其中最右邊的表達(dá)式的值。的值為其中最右邊的表達(dá)式的值。如如: : for(i=1;i=100;i+,i+) sum=sum+i; 相當(dāng)于 for(i=1;i=100;i=i+2) sum=sum+i; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)37 (8) 表達(dá)式2一般是關(guān)系表達(dá)式(如i=100)或邏輯表達(dá) 式 (如ab (c=getchar()!=n;i+=c); 此for語(yǔ)句的循環(huán)體為空語(yǔ)句,把本來(lái)要在循環(huán) 體內(nèi)處理的內(nèi)容放在表達(dá)式3中,作用是一樣的??梢?jiàn) for語(yǔ)句功能強(qiáng),可以在表達(dá)式中完成本來(lái)應(yīng)在循環(huán)體 內(nèi)完成的操作。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)39 fo

18、r( ;(c=getchar()!=n;) printf(%c,c); 注意:從終端鍵盤(pán)向計(jì)算機(jī)輸入時(shí),是在按Enter鍵以 后才將一批數(shù)據(jù)一起送到內(nèi)存緩 沖區(qū)中去的。 運(yùn)行情況:運(yùn)行情況: ComputerComputer ( (輸入輸入) ) Computer (Computer (輸出輸出) ) C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)40 永遠(yuǎn)不會(huì)退出的循環(huán)為死循環(huán) for (;) for (;) while (1) while (1) do do while (1) while (1) 一般情況下,要極力避免死循環(huán) 絕大多數(shù)程序不需要死循環(huán)。如果出現(xiàn),往往都是bug 時(shí)間過(guò)長(zhǎng)的循環(huán)會(huì)造成“假死”效

19、果,也要考慮解決 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)41 #include void main() int sum = 0; for (i = 1; i = 10; i+) if (?)/如果i能被3整除 sum = sum + i; printf(“sum = %dn”,sum); C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)42 一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu) 稱(chēng)為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套 循環(huán),這就是多層循環(huán)。 三種循環(huán)(while循環(huán)、do-while循環(huán)和for循 環(huán))可以互相嵌套。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)43 下面幾種都是合法的形式: (1) while( ) (2) do (3) f

20、or(;) while( ) do for(;) while( ); while( ); C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)44 (4) while( ) (5) for(;) (6) do do while( ) for(;) while( ) while( ) 嵌套循環(huán)控制變量不能相同嵌套循環(huán)控制變量不能相同 內(nèi)循環(huán)變化快,外循環(huán)變化慢內(nèi)循環(huán)變化快,外循環(huán)變化慢 正確確定循環(huán)體正確確定循環(huán)體 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)45 外層循環(huán) 內(nèi)層循環(huán) 內(nèi)層循環(huán) 內(nèi)層循環(huán) 合法的嵌套循環(huán) C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)46 求1-100之間奇數(shù)之和 求1-100之間奇數(shù)的個(gè)數(shù) 求1-100之間奇數(shù)的平均值 分別

21、求1-100之間奇數(shù)之和 與 偶數(shù)之和 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)47 1+1/2+1/3+? 關(guān)鍵:數(shù)據(jù)類(lèi)型?見(jiàn)例子 浮點(diǎn)型存儲(chǔ)帶來(lái)的問(wèn)題: Float和double都不能保證精確的 存儲(chǔ)一個(gè)小數(shù) C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)48 (1)(1)四種循環(huán)都可以用來(lái)處理同一問(wèn)題,一般情況下它四種循環(huán)都可以用來(lái)處理同一問(wèn)題,一般情況下它 們可以互相代替。但一般不提倡用們可以互相代替。但一般不提倡用gotogoto型循環(huán)。型循環(huán)。 (2)(2)在在whilewhile循環(huán)和循環(huán)和do-whiledo-while循環(huán)中,為了使循環(huán)能正循環(huán)中,為了使循環(huán)能正 常結(jié)束,應(yīng)在常結(jié)束,應(yīng)在循環(huán)體中包含使循環(huán)趨于

22、結(jié)束的語(yǔ)句循環(huán)體中包含使循環(huán)趨于結(jié)束的語(yǔ)句( ( 如如i+i+,或,或i=i+1i=i+1等等) )。 forfor語(yǔ)句的功能更強(qiáng),凡用語(yǔ)句的功能更強(qiáng),凡用whilewhile循環(huán)能完成的,用循環(huán)能完成的,用forfor 循環(huán)都能實(shí)現(xiàn)。循環(huán)都能實(shí)現(xiàn)。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)49 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)50 (3)(3)用用whilewhile和和do-whiledo-while循環(huán)時(shí),循環(huán)變量循環(huán)時(shí),循環(huán)變量初始化初始化的操的操 作應(yīng)在作應(yīng)在whilewhile和和do-whiledo-while語(yǔ)句語(yǔ)句之前之前完成。而完成。而forfor語(yǔ)句語(yǔ)句 可以在表達(dá)式可以在表達(dá)式1 1中實(shí)現(xiàn)

23、循環(huán)變量的初始化。中實(shí)現(xiàn)循環(huán)變量的初始化。 (4)while(4)while循環(huán)、循環(huán)、do-whiledo-while循環(huán)和循環(huán)和forfor循環(huán),可以循環(huán),可以 用用breakbreak語(yǔ)句跳出循環(huán),用語(yǔ)句跳出循環(huán),用continuecontinue語(yǔ)句結(jié)束本語(yǔ)句結(jié)束本 次循環(huán),對(duì)用次循環(huán),對(duì)用gotogoto語(yǔ)句和語(yǔ)句和if if語(yǔ)句構(gòu)成的循環(huán),不能用語(yǔ)句構(gòu)成的循環(huán),不能用 breakbreak語(yǔ)句和語(yǔ)句和continuecontinue語(yǔ)句進(jìn)行控制語(yǔ)句進(jìn)行控制. . C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)51 5.8.1 break5.8.1 break語(yǔ)句語(yǔ)句 breakbreak語(yǔ)句可以用來(lái)從

24、語(yǔ)句可以用來(lái)從循環(huán)體內(nèi)跳出循環(huán)體循環(huán)體內(nèi)跳出循環(huán)體,即提前,即提前 結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句 一般形式:一般形式: break;break; 注意注意: :breakbreak語(yǔ)句不能用于循環(huán)語(yǔ)句和語(yǔ)句不能用于循環(huán)語(yǔ)句和switchswitch語(yǔ)句之外語(yǔ)句之外 的任何其他語(yǔ)句中。的任何其他語(yǔ)句中。 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)52 例例: : float pi=3.14159;float pi=3.14159; for(r=1;r=10;r+)for(r=1;r100) if(area100) break;break; printf(r=%f,area=%

25、fn printf(r=%f,area=%fn,r,area);r,area); C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)53 5.8.2 continue5.8.2 continue語(yǔ)句語(yǔ)句 作用為結(jié)束作用為結(jié)束本次循環(huán)本次循環(huán),即跳過(guò)循環(huán)體中下面尚,即跳過(guò)循環(huán)體中下面尚 未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循 環(huán)的判定環(huán)的判定. . 一般形式:一般形式: continue;continue; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)54 continue和break語(yǔ) 句的區(qū)別 continue語(yǔ)句只 結(jié)束本次循環(huán),而 不是終止整個(gè)循環(huán) 的執(zhí)行 break語(yǔ)句則是 結(jié)束整個(gè)循環(huán)過(guò)

26、程 ,不再判斷執(zhí)行循 環(huán)的條件是否成立 while(表達(dá)式1) for if(表達(dá)式2) break; 或者是或者是continue; C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)55 100 1n n C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)56 例例5.65.6 用/41-1/3+1/5-1/7+公式求的 近似值,直到某一項(xiàng)的絕對(duì)值小于為止。 N-SN-S結(jié)構(gòu)化流程圖表示算法結(jié)構(gòu)化流程圖表示算法 t=1,pi=0,n=1,s=1 當(dāng)|t|1e-6 pi=pi+t; n=n+2; s=-s; t=s/n pi=pi*4; 輸出pi C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)57 100 1n n 運(yùn)行結(jié)果:運(yùn)行結(jié)果: pi= 3.1415

27、94 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)58 例例5.75.7 求Fibonacci數(shù)列前40個(gè)數(shù)。這個(gè)數(shù)列有如下 特點(diǎn):第1,2兩個(gè)數(shù)為1,1。從第3個(gè)數(shù)開(kāi)始,該數(shù) 是其前面兩個(gè)數(shù)之和。即: F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n3) 1 F C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)59 100 1n n 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811

28、 514229 832040 1346269 2178309 3524578 57022887 9227465 14930352 24157817 39088169 63245986 102334155 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)60 例例5.85.8 判斷m是否素?cái)?shù)。 1 F C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)61 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 17 17 is a prime number C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)62 100 1n n 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)63 例例5.105.10 譯密碼。為使電文保密,往

溫馨提示

  • 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)論