版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、浙江大學(xué)C顏暉原版C5,第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),循環(huán)語句 break 和 continue 語句 循環(huán)嵌套,浙江大學(xué)C顏暉原版C5,5.1 循環(huán)語句,問題 打印整數(shù)110 打印整數(shù)1100 打印整數(shù)1n,printf(%d, 1); printf(%d, 2); printf(%d, 10);,i=1; printf(%d, i); i+; printf(%d, i); i+; printf(%d, i); i+;,i=1; while(i=10) printf(%d, i); i+; ,浙江大學(xué)C顏暉原版C5,while 語句,while (表達(dá)式) 語句;,語 句,表達(dá)式,非0,0,i=
2、1; while(i=10) printf(%d, i); i+; ,循環(huán)體 循環(huán)不變式 改變循環(huán)條件,浙江大學(xué)C顏暉原版C5,10 求 sum= i i=1 sum=0 sum+1 sum sum+2 sum sum+3 sum sum+10 sum,sum=sum+?,sum=0; i=1; while(i=10) sum=sum+i; i+; ,循環(huán)不變式,浙江大學(xué)C顏暉原版C5,for 語句,for (exp1; exp2; exp3) 語句;,exp3,exp2,非0,0,exp1,語 句,循環(huán)體,浙江大學(xué)C顏暉原版C5,while (表達(dá)式) 語句;,for (exp1; exp2
3、; exp3) 語句;,exp1; while(exp2) 語句; exp3; ,while 和 for,浙江大學(xué)C顏暉原版C5,while 和 for,while (表達(dá)式) 語句;,for (exp1; exp2; exp3) 語句;,exp1; while(exp2 語句; exp3; ,sum=0; i=1; while(i=10) sum=sum+i; i+; ,sum=0; for(i=1; i=10; i+) sum=sum+i;,浙江大學(xué)C顏暉原版C5,程序舉例,例T1-1 求1+2+3+4+ n 例T1-2 求1+1/2+1/3+1/4+ 1/n 例T1-3 求1-1/2+1
4、/3-1/4+ 1/n 例T1-4 求1-1/3+1/5-1/6+ 前n項(xiàng)之和 例T2-1 求n! 例T2-2 求xn 例T3-1 求1-1/3+1/5-1/7+ ,直到最后1項(xiàng)的絕對(duì)值10-5 例T4-1 輸入100個(gè)整數(shù),求其中正數(shù)之和 例T4-2 輸入一個(gè)正整數(shù)n, 再輸入n個(gè)數(shù),輸出最大值 例T5 輸出Fibonacci序列前20個(gè)數(shù),浙江大學(xué)C顏暉原版C5,例T1-1 求1+2+3+4+ n,算法: i =1 to n s=s+t t+ i+,程序段: s=0; for(i=1; i=n; i+) s=s+i;,算法: i =1 to n s=s+i i+,浙江大學(xué)C顏暉原版C5,例
5、T1-2 求1+1/2+1/3+ 1/n,算法: i =1 to n s=s+t t=1.0/i i+,程序段: s=0; for(i=1; i=n; i+) s=s+1.0/i;,算法: i =1 to n s=s+t t+ i+,浙江大學(xué)C顏暉原版C5,例T1-3 求1-1/2+1/3-1/4+ 1/n,i =1 to n s=s+t t=1.0/i i+,程序段: s=0; flag=1; for(i=1; i=n; i+) s=s+1.0/i*flag; flag=-flag; ,算法: i =1 to n s=s+t t=1.0/i*flag flag=-flag i+,浙江大學(xué)C顏
6、暉原版C5,例T1-4 求1-1/3+1/5- 前n項(xiàng)和,算法: i =1 to n s=s+t t=1.0/i*flag flag=-flag i+,程序段: s=0;flag=1;tt=1; for(i=1; i=n; i+) s=s+1.0/tt*flag; tt+=2; flag=-flag; ,算法: i =1 to n s=s+t t=1.0/tt*flag flag=-flag tt=tt+2 i+,浙江大學(xué)C顏暉原版C5,例T2-1 求n!,算法: i =1 to n f=f*t t+ i+,程序段: f=1; for(i=1; i=n; i+) f=f*i;,算法: i =1
7、 to n f=f*i i+,浙江大學(xué)C顏暉原版C5,例T2-2 求xn,算法: i =1 to n f=f*t t+ i+,程序段: f=1; for(i=1; i=n; i+) f=f*x;,算法: i =1 to n f=f*t t=x i+,浙江大學(xué)C顏暉原版C5,例T3-1 求1-1/3+1/5-直到最后1項(xiàng)的絕對(duì)值10-5,程序段: s=0; flag=1; tt=1; t=1; while(fabs(t) = 1E-5) s = s+t; flag = -flag; tt += 2; t = 1.0/tt*flag; ,i =1 to n s=s+t t=1.0/tt*flag
8、flag=-flag tt=tt+2 i+,算法: while |t|=1E-5 s=s+t flag=-flag tt=tt+2 t=1.0/tt*flag,浙江大學(xué)C顏暉原版C5,例T4-1 輸入100個(gè)整數(shù),求其中正數(shù)之和,# include void main() int i , sum=0, x; for (i=0; i0) sum=sum+x; printf(%d,sum); ,浙江大學(xué)C顏暉原版C5,例47 求最大值,輸入3個(gè)數(shù),輸出其中的最大值。 #include void main( ) int a, b, c, max; printf(input a, b, c:n); s
9、canf(%d%d%d, ,a max b c,max,max,浙江大學(xué)C顏暉原版C5,例T4-1輸入一個(gè)正整數(shù)n, 再輸入n個(gè)數(shù),輸出最大值,void main() int i , max, n, x; scanf(%d, ,max,x,浙江大學(xué)C顏暉原版C5,例T5 輸出Fibonacci序列前20個(gè)數(shù),1, 1, 2, 3, 5, 8, x1 x2 t x1 x2 t,程序段: x1=x2=1; printf(%d %d, x1, x2); for(i=1; i=18; i+) t=x1+x2; printf(%d , t); x1=x2; x2=t; ,x1=x2=1; t=x1+x2
10、; x1=x2; x2=t;,浙江大學(xué)C顏暉原版C5,do-while 語句,do 語句 while (表達(dá)式);,i=1; do printf(%d, i); i+; while(i=10);,語 句,表達(dá)式,非0,0,浙江大學(xué)C顏暉原版C5,while (表達(dá)式) 語句;,while 和 do-while,do 語句 while (表達(dá)式);,先循環(huán),后判斷,先判斷,后循環(huán),浙江大學(xué)C顏暉原版C5,while 和 do-while 的用法比較,輸入一些數(shù),求和,直到輸入負(fù)數(shù)為止。 void main( ) int x, sum=0; do scanf(%d, ,void main( ) i
11、nt x, sum=0; scanf(%d, ,輸入 1 2 5 -10,輸入 -10 1 2 5,sum-x,浙江大學(xué)C顏暉原版C5,5.2 break 和 continue 語句,#include stdio.h void main( ) char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) break; putchar(c); ,循環(huán)何時(shí)結(jié)束?,c=getchar(); for (i=0; i10 ,for (i=0; ;i+) c=getchar(); if ( i = 10 | c = n) break; putchar(c
12、); ,1,浙江大學(xué)C顏暉原版C5,break 流程,結(jié)束循環(huán) while(exp) 語句1 if (expb) break; 語句2 ,浙江大學(xué)C顏暉原版C5,continue 流程,跳過continue后面的語句,繼續(xù)下一次循環(huán) while(exp) 語句1 if (expc) continue; 語句2 ,浙江大學(xué)C顏暉原版C5,break 和 continue,#include stdio.h void main( ) char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) break; putchar(c); ,#includ
13、e stdio.h void main( ) char c; int i=0; for (i=0; i10;i+) c=getchar(); if (c=n) continue; putchar(c); ,輸入:abc efgh 123 ,輸出:abcefgh1,輸出:abc,浙江大學(xué)C顏暉原版C5,例T6 輸入m,判斷m是否為素?cái)?shù),算法:除了1和m,不能被其它數(shù)整除。 m %2 %3 %4 %5 不是素?cái)?shù) | =0 =0 是素?cái)?shù) for(i=2; in) printf(yesn) else printf(non”);,浙江大學(xué)C顏暉原版C5,例T7 將一個(gè)正整數(shù)逆序輸出,確定:循環(huán)條件和循環(huán)
14、不變體,12345 5 4 3 2 1 12345 % 10 = 5 12345 / 10 = 1234 1234 % 10 = 4 1234 / 10 = 123 123 % 10 = 3 123 / 10 = 12 12 % 10 = 2 12 / 10 = 1 1 % 10 = 1 1 / 10 = 0 結(jié)束,循環(huán)不變式 x%10 x=x/10 循環(huán)條件 x=0,scanf( “%d”, ,浙江大學(xué)C顏暉原版C5,例4-10,# include void main( ) char c; printf(Please input a character:n); c = getchar();
15、if(c=a 輸入一行字符,統(tǒng)計(jì)英文字母、數(shù)字和其他字符。,浙江大學(xué)C顏暉原版C5,例T8 輸入一行字符,統(tǒng)計(jì)英文字母、數(shù)字和其他字符,# include void main( ) char c; int letter=0, digit=0, other=0; c = getchar(); while(c!=n) if(c=a ,while(c = getchar()!=n),浙江大學(xué)C顏暉原版C5,5.3 循環(huán)嵌套,while (表達(dá)式) 語句;,浙江大學(xué)C顏暉原版C5,例T9-1.1 1!+2!+n!,s=0; for(k=1; k=n; k+) s=s+f; ,f=1; /* n! */
16、 for(i=1; i=n; i+) f=f*i;,f=1; for(i=1; i=k; i+) f=f*i;,算法: k=1 to n s = s + f f = k! k+,浙江大學(xué)C顏暉原版C5,例T9-1.2 1!+2!+n!,算法: k=1 to n s = s + f f = k! k+,s=0;f=1; for(k=1;k=n;k+) f=f*k; s=s+f; ,算法: k =1 to n s = s+f f = f*k k+,浙江大學(xué)C顏暉原版C5,例T9-2 兌換零錢,將10元錢換成5角、2角、1角的零錢(至少各一枚),列出所有可能的方案。 c5: 5角的數(shù)量, 1, 20
17、) c2: 2角的數(shù)量, 1, 50) c1: 1角的數(shù)量, 1, 100) 5*c1+2*c2+c5=100,浙江大學(xué)C顏暉原版C5,將10元錢換成5角、2角、1角的零錢 c5: 5角的數(shù)量, 1, 20) c2: 2角的數(shù)量, 1, 50) c1: 1角的數(shù)量, 1, 100) 5*c5+2*c2+c1=100,for (c5=1; c520; c5+) for (c2=1; c250; c2+) for (c1=1; c1100; c1+) if (5*c5+2*c2+c1=100 ) printf(%d %d %dn, c5, c2, c1);,c5=1 c2=1 c1=1, 99,2
18、, 49,2, 19,浙江大學(xué)C顏暉原版C5,將10元錢換成5角、2角、1角的零錢 c5: 5角的數(shù)量, 1, 20) c2: 2角的數(shù)量, 1, 50) c1: 1角的數(shù)量, 1, 100) 5*c5+2*c2+c1=1000,for (c5=1; c520; c5+) for (c2=1; c250; c2+) for (c1=1; c1100; c1+) if (5*c5+2*c2+c1=1000 ) printf(%d %d %dn, c5, c2, c1);,for (c5=1; c520; c5+) for (c2=1; c250; c2+) printf(%d %d %dn, c5, c2, 1000- 5*c5+2*c2);,浙江大學(xué)C顏暉原版C5,例T9-3 輸出100
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度婚禮導(dǎo)演委托聘用合同3篇
- 春節(jié)市場推廣
- 二建建筑工程實(shí)務(wù)-二建《建筑工程管理與實(shí)務(wù)》全真模擬試卷3259
- 2024年天津市《輔警招聘考試必刷500題》考試題庫及答案(奪冠系列)
- 2024年體育說課稿范文1500字(44篇)
- 產(chǎn)教融合人才培養(yǎng):企業(yè)與教育機(jī)構(gòu)的合作模式
- 2025年美術(shù)教研組教學(xué)工作計(jì)劃范本
- 2025護(hù)士工作計(jì)劃怎么寫
- 2025年社區(qū)健康教育工作計(jì)劃書
- Unit 5 Section B(2a-2e)說課稿 2024-2025學(xué)年人教版八年級(jí)英語上冊
- 江西省2023-2024學(xué)年高二上學(xué)期期末教學(xué)檢測數(shù)學(xué)試題 附答案
- 碳匯計(jì)量與監(jiān)測技術(shù)智慧樹知到期末考試答案章節(jié)答案2024年浙江農(nóng)林大學(xué)
- 可用性控制程序
- GB/T 17554.1-2006識(shí)別卡測試方法第1部分:一般特性測試
- 2022一、二級(jí)個(gè)人防護(hù)(穿脫防護(hù)服)操作評(píng)分表(精華版)
- 廣東省中醫(yī)院進(jìn)修申請(qǐng)表
- 聚酯合成副反應(yīng)介紹
- 竣工之風(fēng)量平衡測試報(bào)告air distribution balance report
- 貝利嬰幼兒發(fā)展量表(BSID)
- 說明書hid500系列變頻調(diào)速器使用說明書s1.1(1)
- 橫版榮譽(yù)證書模板可修改打印 (9)
評(píng)論
0/150
提交評(píng)論