C語言程序設計教程第4章-循環(huán)結構程序設計_第1頁
C語言程序設計教程第4章-循環(huán)結構程序設計_第2頁
C語言程序設計教程第4章-循環(huán)結構程序設計_第3頁
C語言程序設計教程第4章-循環(huán)結構程序設計_第4頁
C語言程序設計教程第4章-循環(huán)結構程序設計_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C語言程序設計,第4章 循環(huán)結構程序設計,本章需要掌握的知識點: while語句的語法和語義 do while語句的語法和語義 for語句的語法和語義 break語句和continue語句的使用 求和、迭代和窮舉算法的理解和運用,內容安排,4.1 問題的提出 4.2 while 語句 4.3 do while語句 4.4 for語句 4.5 多重循環(huán) 4.6 break語句 4.7 continue語句 4.8 程序舉例,4.1 問題的提出,為什么要提供循環(huán)結構?,4.2 while 語句,在C語言中用什么樣的句法來表示循環(huán)結構? P條件成立或者不成立用什么表示?,while循環(huán)語句的語法是:

2、 while (表達式) 一個語句單元,例:用while語句 解決“1+2+3+n”的問題,首先確定計算思路 確定n值, 0sum sum+1sum sum+2sum sum+n sum,然后根據(jù)算法畫出N-S圖,#include stdio.h void main() int i=1,sum=0,n; printf(nPlease input a integer:); scanf(%d, ,最后將流程圖內容翻譯成語言,E0503.c,注意事項,循環(huán)次數(shù)的控制要正確。 循環(huán)體包含一條以上的語句時,一定要使用復合語句。 在循環(huán)體內要有使循環(huán)趨向于結束的語句,否則,可能引起無限循環(huán)。 在循環(huán)體中可

3、以使用break語句強制退出循環(huán)。,4.3 do while語句,do while循環(huán)語句的語法是: do 循環(huán)語句單元 while (表達式); 但一般采用以下形式 do 復合語句 while (表達式);,例:用do while 解決“1+2+3+n”的問題,#include stdio.h void main() int i=1,sum=0,n; printf(nPlease input a integer:); scanf(%d, ,do sum=sum+i; i+; while (i=n);,while和do-while循環(huán)的比較,main ( ) int sum=0,i; scan

4、f(“%d”, ,main ( ) int sum=0,i; scanf(“%d”, ,當確定循環(huán)體肯定會執(zhí)行一次時,使用while和do while是沒有差別 如果循環(huán)體有可能不執(zhí)行,必須使用while語句 如果必須保證循環(huán)體執(zhí)行一次,必須使用do while語句,小結(上),循環(huán)結構的含義及其N-S圖表示方法 while結構的語法形式及其語義 do while語法形式及其語義,上一節(jié)關鍵點回顧,循環(huán)結構的兩個要素? while語句如何組合這兩個關鍵要素? do while語句如何組合這兩個關鍵要素?,4.4 for語句,問題:為什么要引進for語句?,例:分析求n!程序中控制循環(huán)的語句,

5、i=1; sum=1; scanf(%ld, ,i+;,i1;,i=n,對于那些初始條件明確,循環(huán)控制清晰的循環(huán)結構,可以用一個更加清晰的語句結構來描述。,for (表達式1;表達式2;表達式3) 循環(huán)語句,for循環(huán)語句的語法是:,#include stdio.h void main() int i,sum=0,n; printf(“n請輸入一個整數(shù):); scanf(%d, ,E0513.c,例:用for 語句解決“1+2+3+n”的問題,sum=0,輸入,n,i=1,i,=n,sum=sum+i;,i= i + 1;,輸出,sum,掌握for語句的關鍵點,三個表達式和循環(huán)體語句運行的順序

6、? 注意:for語句的書寫可以非常靈活!但要避免死循環(huán)! 表達式1起什么作用?如果省略會怎樣? 表達式2起什么作用?如果省略會怎樣? 表達式3起什么作用?如果省略會怎樣?,思考1:如果循環(huán)體不是一條語句而是一組語句,怎么辦? 思考2:可以采用另外一種for語句來達到同樣的求和目的嗎?,4.5 多重循環(huán),循環(huán)體語句可以是三種基本結構中的任意一種 如果在一個循環(huán)體內又包含另一個循環(huán)結構,稱為循環(huán)的嵌套。,例 請編寫程序在一行內輸出整數(shù)1到20,并連續(xù)輸出5行。,使用逐步求精法,i=1,i,=5,在一行內輸出整數(shù)到,i,增,i=1,i,=5,j=1,j=20,輸出,j,j,增,1,輸出換行,i,增,

7、#include stdio.h void main() int i,j; for (i=1; i=5 ; i+) 輸出1到20并回車; ,for(j=1;j=20; j+) printf(“%d ”,j); printf(“n”); ,E0515.c,i=1,i,=5,j=1,j=20,輸出,j,j,增,1,輸出換行,i,增,4.6 4.7 break語句和continue語句,在循環(huán)體中遇到break語句提前退出整個循環(huán) 在循環(huán)體中遇到continue語句提前結束當次循環(huán),EContinue.C,幾種循環(huán)的比較,三種循環(huán)語句都可以互相代替。 退出條件簡單且循環(huán)變量按照遞增或者遞減的規(guī)律變化

8、時,使用for語句結構較為清晰。,4.8 程序舉例,求和(積) 窮舉 迭代,窮舉,窮舉的基本思想是一一列舉所有可能進行測試,從中找出符合條件的解。,實戰(zhàn)分析:求兩個整數(shù)的最小公倍數(shù),公倍數(shù)必定能夠被兩個整數(shù)整除。 最小公倍數(shù)必定大于或者等于兩個整數(shù)中最大的那一個。 如果我們從最大的整數(shù)開始往上一一尋找,那么第一個發(fā)現(xiàn)的就應該是最小公倍數(shù)。,gbsAgys.C,算法分析(窮舉法) 先找到兩個整數(shù)中最大的那一個,令為A。 檢查A是否能被這兩個整數(shù)整除,如果是,跳轉到第3步,否則將A中的值加1,繼續(xù)執(zhí)行第2步。(窮舉) A中的值是最小公倍數(shù),實戰(zhàn)分析:用分和分硬幣組合成元錢,請列出所有可能,假設、分

9、別代表分和分的硬幣個數(shù),如果x,y是合適的組合,那么應有 2x+5y = 100,int x,y; for(x=0;x=50;x+) for (y=0;y=20;y+) if (2*x+5*y = 100 ) printf(c2:%d c5:%d n,x,y); ,E5_22.C,迭代(遞推),遞推就是采用不斷由已知推出新值,直到求得解為止。,實戰(zhàn)舉例:求兔子的個數(shù),有一對兔子,從出生后第3個月起每個月都生一對兔子。小兔子長到第3個月后每個月又生一對兔子。假設所有兔子都不死,問第20個月的兔子總數(shù)為多少對?,算法分析,用s1代表月齡為1的兔子對數(shù),s2代表月齡為2的兔子對數(shù),s3代表月齡為大于

10、等于3的兔子對數(shù)。那么s1+s2+s3的和為兔子的總對數(shù),用total代表。 第一個月:s1=1,s2=0,s3=0; total等于多少? 第二個月的s1,s2,s3,total等于多少? 第三個月的s1,s2,s3,total等于多少? 如果已經知道第n月的各個月齡的兔子對數(shù)分別為:s1,s2,s3;那么第n+1月的各個月齡的兔子對數(shù)分別為多少?,s2 + s3(上個月的) s3(本月) s1(上個月的)s2(本月) s3(本月的)s1(本月),用偽代碼描述算法,s1=1,s2=0,s3=0;i=1; /*i為循環(huán)變量*/ 輸出 “第1個月兔子對數(shù):”,s1s2+s3; 循環(huán)以下語句,直到

11、i大于20 s2 + s3(上個月的) s3 s1(上個月的) s2 s3(本月的) s1 輸出 “第i個月兔子對數(shù):”,s1+s2+s3 i+1 i ,E0670.C,小結(下),for循環(huán)中三個表達式和循環(huán)體運行的順序 什么叫循環(huán)的嵌套 break語句的作用 continue語句的作用 窮舉算法 迭代算法,課堂作業(yè)一,、編寫求n!的程序:要求輸入,然后計算輸出n的階乘。 提示:(算法思路) 1fac fac *1 fac fac *2 fac fac *n fac,課外練習,.110 4 1 4-6 4-8 4 15 *4 - 5 *4-12 #4-17 #4-20(有挑戰(zhàn)性的問題),上機實驗四,上機指導實驗四 循環(huán)結構 基礎部

溫馨提示

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

評論

0/150

提交評論