




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第6章循環(huán)結(jié)構(gòu)的程序設(shè)計 while語句do while語句for語句其他控制語句break continue 循環(huán)型程序設(shè)計 問題 編程序求1 2 100之和分析 1 設(shè)一個變量sum存放和 并初始化為0 2 設(shè)置變量i 讓其從1 100 將這100個數(shù)一個一個加到sum中 加100次 而且每次都做同樣的操作 sum sum i i i從1增加到100 3 當(dāng)i增加到101時 停止計算 最后sum中的值就為所求的值順序結(jié)構(gòu)和選擇結(jié)構(gòu)程序是每條語句最多執(zhí)行一次 不能解決這個問題 因此要用到循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是用于處理大量的有規(guī)律的重復(fù)操作 sum 1 2 100 分析 sum 0i 1sum sum 1 1sum sum 2 1 2 3sum sum 3 3 3 6sum sum 4 6 4 10 sum sum 100 4950 100 5050 循環(huán)結(jié)構(gòu) 特點 在給定條件成立時 反復(fù)執(zhí)行某程序段 循環(huán)體語句 直到條件不成立時 結(jié)束循環(huán) 繼續(xù)執(zhí)行循環(huán)體下面的語句 當(dāng)型循環(huán)結(jié)構(gòu)while 直到型循環(huán)結(jié)構(gòu)dowhile 注 A可以是一個簡單語句 也可以是一個復(fù)合語句 6 1概述 p103 C語言可實現(xiàn)循環(huán)結(jié)構(gòu)的語句 while語句do while語句for語句 6 1概述 p106 一般形式 while 表達式 循環(huán)體語句 執(zhí)行流程 當(dāng)表達式為真 非0值 時 執(zhí)行while語句中的內(nèi)嵌語句 6 3while語句 特點 先判斷表達式 后執(zhí)行循環(huán)體 當(dāng)型 sum 0 i 1 while i 100 sum sum i i 此處無分號 一般形式 while 表達式 循環(huán)體語句 6 3while語句 說明 循環(huán)體有可能一次也不執(zhí)行 一開始條件就不成立 當(dāng)表達式為真 非0值 時 即可繼續(xù)執(zhí)行循環(huán)循環(huán)體包括一個以上語句的用 組成復(fù)合語句有使循環(huán)趨向結(jié)束的語句 如i 無限循環(huán) 也即無循環(huán)結(jié)束條件while 1 循環(huán)體 下列情況 退出while循環(huán) 條件表達式不成立 為零 循環(huán)體內(nèi)遇break return goto 特點 先判斷表達式 后執(zhí)行循環(huán)體 當(dāng)型 sum 0 i 1 while i 100 sum sum i i 例6 2用while循環(huán)求 ch6 2 c includevoidmain inti sum 0 i 1 while i 100 sum sum i i printf d sum 循環(huán)結(jié)構(gòu)的五要素 循環(huán)初值 循環(huán)條件 循環(huán)終值 循環(huán)變量增值 循環(huán)體 例6 2用while循環(huán)求 ch6 2 c includevoidmain inti sum 0 i 1 while i 100 sum sum i i printf d sum 求前n項的和可用scanf讀入n ch6 2 c includevoidmain inti sum 0 n i 1 scanf d 例6 banjicj某班有10名學(xué)生 輸入每個學(xué)生某門課程的成績 并求出該班該門課程的平均分以及成績?yōu)閮?yōu)秀 大于等于90分 的學(xué)生人數(shù) includevoidmain intscore i 1 sum 0 count 0 printf 請輸入學(xué)生10個成績 n while i 90 count count 1 i i 1 printf 平均分為 d n sum 10 printf 優(yōu)秀人數(shù)為 d n count 一般形式 do循環(huán)體語句while 表達式 執(zhí)行流程 執(zhí)行do while語句中的內(nèi)嵌語句 直到表達式為假 0 才跳出循環(huán) 6 4do while語句 此處有分號 特點 先執(zhí)行循環(huán)體 后判斷表達式 直到型 說明 至少執(zhí)行一次循環(huán)體循環(huán)體如果包含一個以上的語句 必須使用復(fù)合語句形式在循環(huán)體中 必須有使循環(huán)條件趨向于不滿足 假 的語句do while可轉(zhuǎn)化成while結(jié)構(gòu) 例6 3用do while循環(huán)求 ch6 3 c includevoidmain inti sum 0 i 1 do sum i i while i 100 printf d sum 此處有分號 與while語句得出的結(jié)果一樣 ch6 2 c includevoidmain inti sum 0 i 1 while i 100 sum sum i i printf d sum 例6 4while和do while比較 ch6 4 c includevoidmain inti sum 0 scanf d ch6 4 1 c includevoidmain inti sum 0 scanf d 結(jié)論 當(dāng)while后的表達式第一次的值為 真 時 兩種結(jié)果相同 否則不同 輸入 10 輸出 sum 10輸出 sum 10 輸入 11 輸出 sum 11輸出 sum 0 一般形式 for 表達式1 表達式2 表達式3 循環(huán)體語句 執(zhí)行流程 6 5for語句 1 先求解表達式1 2 求解表達式2 若其值為真 非0 則執(zhí)行循環(huán)體的內(nèi)容 然后執(zhí)行第3步 若為假 0 則結(jié)束循環(huán) 執(zhí)行for語句下面一條語句 3 若表達式為真 執(zhí)行指定的語句后 求解表達式3 4 返回第2步執(zhí)行 5 循環(huán)結(jié)束 執(zhí)行for語句下面的一個語句 此處無分號 sum 0 for i 1 i 100 i sum sum i sum 0 i 1 while i 100 sum sum i i for語句一般應(yīng)用形式 for 循環(huán)變量賦初值 循環(huán)條件 循環(huán)變量增值 循環(huán)體語句 說明 for語句中表達式1 表達式2 表達式3類型任意 都可省略 但分號 不可省 如 for includevoidmain inti sum 0 for i 1 i 100 i sum i printf d sum for 表達式1 表達式2 表達式3 例 includevoidmain inti for i 0 i 10 i putchar a i 如何分析循環(huán)程序的運行結(jié)果 將i值帶入 例 includevoidmain inti 0 for i 10 i putchar a i 例 includevoidmain inti 0 for i 10 putchar a i 例 includevoidmain inti 0 for i 10 putchar a i i 省略表達式1 省略表達式1 3 省略循環(huán)體 運行結(jié)果 abcdefghij ch6 for 1 c voidmain inti j k for i 0 j 100 i j i j k i j printf d d d n i j k ch6 for 2 c includevoidmain charc for c getchar n printf c c ch6 for 3 c includevoidmain inti c for i 0 c getchar n i 3 printf c i c 表達式1 3為逗號表達式 打印一串字符 遇回車結(jié)束 此循環(huán)執(zhí)行幾次 i j 0 100 100i j 1 99 100i j 2 98 100 i j 50 50 100 輸入 abc 輸出 aei 結(jié)論 for語句的功能強大 6 7幾種循環(huán)的比較 1 三種循環(huán)語句在處理循環(huán)問題時 一般可以相互替代 2 對于循環(huán)次數(shù)不確定的問題 可以用while或do while語句來實現(xiàn) while語句為先判斷后執(zhí)行 do while語句則先執(zhí)行后判斷 3 對于循環(huán)次數(shù)確定的問題 用for語句更方便 for語句也為先判斷后執(zhí)行 三種循環(huán)結(jié)構(gòu) 求1 100的和 sum 0 i 1 while i 100 sum sum i i printf d sum sum 0 i 1 do sum i i while i 100 printf d sum sum 0 for i 1 i 100 i sum i printf d sum 6 8 1break語句一般形式 break 功能 放在循環(huán)語句和switch語句中 用于終止并跳出循環(huán)體或開關(guān)體 switch語句 接著執(zhí)行循環(huán)語句 或switch語句 后面的語句 說明 break只能終止并跳出最近一層的循環(huán) 嵌套循環(huán)時 如果要跳出多層循環(huán) 需用goto語句break不能用于循環(huán)語句和switch語句之外的任何其它語句之中 6 8break語句和continue語句 p122 for i 1 i50 break sum i printf d sum 循環(huán)體 例1break舉例 按不同的半徑 輸出圓面積 面積大于100時停止 include definePI3 14159voidmain intr floatarea for r 1 r100 break printf r d area 2f n r area 通常break語句總是和if語句連在一起 if area 100 printf r d area 2f n r area elsebreak 運行l(wèi)t6 area c 例2break舉例 小寫字母轉(zhuǎn)換成大寫字母 直至輸入非小寫字母字符 includevoidmain charc while 1 c getchar if c a includevoidmain charc while 1 c getchar if c a 只將小寫字母轉(zhuǎn)成大寫字母輸出 將小寫字母轉(zhuǎn)成大寫字母輸出如果是大寫字母 則直接輸出 運行l(wèi)t6 14 c lt6 14 1 c 6 8 2continue語句一般形式 continue 功能 結(jié)束本次循環(huán) 跳過循環(huán)體中尚未執(zhí)行的語句 進行下一次是否執(zhí)行循環(huán)體的判斷 如果條件成立 繼續(xù)執(zhí)行循環(huán) 說明 僅用于循環(huán)語句中continue語句僅結(jié)束本次循環(huán) 但break語句則是結(jié)束整個循環(huán)過程 例6 5輸出1到100之間能被9整除的數(shù) includevoidmain inti for i 1 i 100 i if i 9 0 continue printf d n i 運行l(wèi)t6 5 c 分析 i為循環(huán)變量 從1 10十個整數(shù)n 用scanf讀入正數(shù)的個數(shù)放入num中正數(shù)的和放入sum中正數(shù)的平均值為aver sum num 例3求輸入的十個整數(shù)中正整數(shù)的個數(shù)及其和與平均值 includevoidmain inti n num 0 floatsum 0 aver for i 0 i 10 i scanf d if n 0 num sum n elsecontinue if n 0 num sum n 行不 注意 scanf的輸入格式是用124569還是用12 45 69 for循環(huán)中scanf的輸入格式要用空格或回車 運行l(wèi)t6 15 c 格式 while 表達式1 if 表達式2 break 舉例 sum 0 for i 1 i 8 i if i 5 break sum sum i printf sum 5d n sum while 表達式1 if 表達式2 conitue 結(jié)束整個循環(huán) 結(jié)束本次循環(huán) sum 0 for i 1 i 8 i if i 5 continue sum sum i printf sum 5d n sum break語句與continue語句的比較 sum 1 2 3 4 10 sum 1 2 3 4 6 7 8 31 三種循環(huán)可互相嵌套 層數(shù)不限外層循環(huán)可包含兩個以上內(nèi)循環(huán) 但不能相互交叉嵌套循環(huán)的執(zhí)行流程 1 while while 2 do do while while 3 while do while 4 for do while while 嵌套循環(huán)的跳轉(zhuǎn)禁止 從外層跳入內(nèi)層跳入同層的另一循環(huán)向上跳轉(zhuǎn) 6 6循環(huán)的嵌套 例6 pingguo 現(xiàn)有100個蘋果 決定將所有的蘋果進行裝盒出售 現(xiàn)有大 小兩種盒子 要求如下 包裝規(guī)格分別是 小盒每盒可裝8個 大盒每盒可裝12個 并且大小盒子都要用到 輸出所有可能的包裝方案 includevoidmain intx y printf 小盒數(shù)大盒數(shù) n for x 1 x 12 x for y 1 y 8 y if x 8 y 12 100 printf 8d 8d n x y 例2 根據(jù)輸入的邊長 輸出正方形 includevoidmain inti j n printf inputn scanf d 運行l(wèi)t66 c 例3循環(huán)嵌套 輸出九九表 includemain inti j for i 1 i 10 i printf 4d i printf n n for i 1 i 10 i for j 1 j 10 j printf j 9 4d n 4d i j 變量i控制行 變量j控制列i 1 j從1 9循環(huán) 輸出i ji 2 j從1 9循環(huán) 輸出i j for i 1 i 10 i for j 1 j 10 j printf 4d i j printf n 例3循環(huán)嵌套 輸出九九表 ch6 ff c includevoidmain inti j for i 1 i 10 i printf 4d i printf n n for i 1 i 10 i for j 1 j i j printf j i 4d n 4d i j 變量i控制行 變量j控制列i 1 j從1 i循環(huán) 輸出i ji 2 j從1 i循環(huán) 輸出i j 運行l(wèi)t6 99b c for i 1 i 10 i for j 1 j i j printf 4d i j printf n for i 1 i 10 i for j 1 j 10 j printf j 9 4d n 4d i j 分析分子 1 1 1 1 sor s分母 1 3 5 7 n 2 6 9程序舉例 ch6 6 c include includevoidmain ints floatn t pi t 1 s 0 n 1 0 m 1 while fabs t 1e 6 s s t n n 2 m m t m n pi s 4 printf pi 8 6f n pi 運行l(wèi)t6 6 c 例6 8 判斷m是否為素數(shù) 素數(shù) 質(zhì)數(shù) 只能被1和它本身整除的數(shù) 判別方法 若數(shù)7不能被2 6之間的每一個數(shù)整除 則7為素數(shù) 否則7不是素數(shù)設(shè)一個數(shù)為m k m 1 i 2 k 如果m 7 則k m 1 6 i 2 6若m不能被每一個i的值整除 則m為素數(shù) 否則m不是素數(shù) flag 1 k m 1 for i 2 i k i if m i 0 flag 0 if flag 1 printf disaprimenumber n m elseprintf disnotaprimenumber n m k m 1 for i 2 i k 1 printf yes elseprintf no 程序舉例 include includevoidmain intm i k scanf d 運行l(wèi)t6 8 1 c 例6 8判斷m是否素數(shù) ch6 8 c include includevoidmain intm i k scanf d 例6 9求100 200間的全部素數(shù) 運行l(wèi)t6 8 2 c k m 1 k m 2 m 1 2 k sqrt m sqrt m 1 例6 7求Fibonacci數(shù)列 1 1 2 3 5 8 的前40個數(shù) F1 1 n 1 F2 1 n 2 Fn Fn 1 Fn 2 n 3 f1 f2 f2 f1 f1 f2f2 f2 f1 分析 第1項 f1 1第2項 f2 1第3項 f3 f1 f2第4項 f4 f2 f3第5項 f5 f3 f4第6項 f6 f4 f5 第39項 f39 f37 f38第40項 f40 f38 f39 f3 f3 f4 f3 f3 f1 f1 f3 f2 f5 f4 f4 f2 f4 f5 f1 f1 f3 f4 f6 f5 f1 f5 f2 f6 f2 f4 f1 f1 f2f2 f2 f1 例6 7求Fibonacci數(shù)列 1 1 2 3 5 8 的前40個數(shù) F1 1 n 1 F2 1 n 2 Fn Fn 1 Fn 2 n 3 特點 第1 2個數(shù)為1 1 從第三個數(shù)開始 該數(shù)是其前面兩個數(shù)之和 F1 1 n 1 F2 2 n 2 Fn Fn 1 Fn 2 n 3 分析 第1項 f1 1第2項 f2 1第3項 f3 f1 f2第4項 f4 f2 f3第5項 f5 f3 f4第6項 f6 f4 f5 第39項 f39 f37 f38第40項 f40 f38 f39 f1 f1 f2f2 f2 f1 例6 7求Fibonacci數(shù)列 1 1 2 3 5 8 的前40個數(shù) F1 1 n 1 F2 1 n 2 Fn Fn 1 Fn 2 n 3 特點 第1 2個數(shù)為1 1 從第三個數(shù)開始 該數(shù)是其前面兩個數(shù)之和 F1 1 n 1 F2 2 n 2 Fn Fn 1 Fn 2 n 3 includevoidmain longintf1 f2 inti f1 1 f2 1 i 1 while i 20 printf 15ld 15ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 i 例6 7求Fibonacci數(shù)列 1 1 2 3 5 8 的前40個數(shù) 例6 7求Fibonacci數(shù)列 1 1 2 3 5 8 的前40個數(shù) F1 1 n 1 F2 1 n 2 Fn Fn 1 Fn 2 n 3 ch6 7 c includevoidmain longintf1 f2 inti f1 1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 運行l(wèi)t6 7 c 例6 10譯密碼 例如 Hello world 譯成密碼 Lipps asvph ch6 10 c includevoidmain charc while c getchar n if c a 運行l(wèi)t6 10 c 第六章補充習(xí)題 題6 money 現(xiàn)有50元紙幣 要求換1元 5元和10元的紙幣若干 并且每種紙幣的個數(shù)不能為0 編寫程序要求 輸出所有可能的換幣方案 假設(shè)換1元紙幣個數(shù)為x 5元紙幣個數(shù)為y 10元紙幣個數(shù)為z 例 f0r 梯形法求數(shù)值積分 例顯示1 10的平方 ch6 21 c includevoidmain inti 1 j while i 10 j i i printf d d d n i i j i 運行結(jié)果 1 1 12 2 43 3 94 4 165 5 256 6 367 7 498 8 649 9 8110 10 100 交換位置可以嗎 i printf d d d n i i j 運行l(wèi)t6 11 c ch6 21 c includevoidmain inti 1 while i 10 printf d d d n i i i i i 例1 求12 22 n2的和 includevoidmain intx n longy t printf inputn scanf d 運行l(wèi)t33 c goto語句一般格式 goto語句標(biāo)號 標(biāo)號 語句 功能 無條件轉(zhuǎn)移語句說明 不能用整數(shù)作標(biāo)號 如 goto123 標(biāo)號只能出現(xiàn)在goto所在函數(shù)內(nèi) 且唯一標(biāo)號只能加在可執(zhí)行語句
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Photoshop平面設(shè)計基礎(chǔ) 課件 任務(wù)5.2 制作餅干宣傳海報
- 肉羊飼料定制銷售協(xié)議
- 房屋租賃合同標(biāo)準(zhǔn)化管理規(guī)范文本范本精裝修家具家電
- 成都臨街商鋪租賃及品牌宣傳合作合同
- 離婚協(xié)議書范本涉及知識產(chǎn)權(quán)分割
- 保安員整改方案
- 產(chǎn)業(yè)園區(qū)場地調(diào)研合作協(xié)議
- 餐飲企業(yè)租賃及品牌授權(quán)合同
- 店面承重柱改造方案
- 寧夏農(nóng)學(xué)面試題及答案
- 2025至2030中國鐵路貨車行業(yè)深度調(diào)研及投資前景報告
- 浙里貸(數(shù)字貸款)復(fù)習(xí)試題附答案
- 2025年中國冷鐓鋼線行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 山東檔案職稱考試《檔案基礎(chǔ)理論》完整題(附答案)
- 2025年食品安全管理考試試題及答案
- 2025年 吉林省長白山公安局警務(wù)輔助人員招聘考試試卷附答案
- 2025年公共衛(wèi)生管理考試試卷與答案
- 2025江蘇省惠隆資產(chǎn)管理限公司招聘30人易考易錯模擬試題(共500題)試卷后附參考答案
- 籍貫對照表完整版
- 2023年重慶出版集團有限公司招聘筆試模擬試題及答案解析
- EN779-2012一般通風(fēng)過濾器——過濾性能測定(中文版)
評論
0/150
提交評論