c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计
《C語言程序設(shè)計(jì)教程第4章-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言程序設(shè)計(jì)教程第4章-循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(42頁珍藏版)》請?jiān)谌巳宋膸炀W(wǎng)上搜索。
1、C語言程序設(shè)計(jì),第4章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),本章需要掌握的知識點(diǎn): while語句的語法和語義 do while語句的語法和語義 for語句的語法和語義 break語句和continue語句的使用 求和、迭代和窮舉算法的理解和運(yùn)用,內(nèi)容安排,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)結(jié)構(gòu)?,4.2 while 語句,在C語言中用什么樣的句法來表示循環(huán)結(jié)構(gòu)? P條件成立或者不成立用什么表示?,while循環(huán)語句的語法是:。
2、 while (表達(dá)式) 一個(gè)語句單元,例:用while語句 解決“1+2+3+n”的問題,首先確定計(jì)算思路 確定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, ,最后將流程圖內(nèi)容翻譯成語言,E0503.c,注意事項(xiàng),循環(huán)次數(shù)的控制要正確。 循環(huán)體包含一條以上的語句時(shí),一定要使用復(fù)合語句。 在循環(huán)體內(nèi)要有使循環(huán)趨向于結(jié)束的語句,否則,可能引起無限循環(huán)。 在循環(huán)體中可。
3、以使用break語句強(qiáng)制退出循環(huán)。,4.3 do while語句,do while循環(huán)語句的語法是: do 循環(huán)語句單元 while (表達(dá)式); 但一般采用以下形式 do 復(fù)合語句 while (表達(dá)式);,例:用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”, ,當(dāng)確定循環(huán)體肯定會(huì)執(zhí)行一次時(shí),使用while和do while是沒有差別 如果循環(huán)體有可能不執(zhí)行,必須使用while語句 如果必須保證循環(huán)體執(zhí)行一次,必須使用do while語句,小結(jié)(上),循環(huán)結(jié)構(gòu)的含義及其N-S圖表示方法 while結(jié)構(gòu)的語法形式及其語義 do while語法形式及其語義,上一節(jié)關(guān)鍵點(diǎn)回顧,循環(huán)結(jié)構(gòu)的兩個(gè)要素? while語句如何組合這兩個(gè)關(guān)鍵要素? do while語句如何組合這兩個(gè)關(guān)鍵要素?,4.4 for語句,問題:為什么要引進(jìn)for語句?,例:分析求n!程序中控制循環(huán)的語句, 。
5、i=1; sum=1; scanf(%ld, ,i+;,i1;,i=n,對于那些初始條件明確,循環(huán)控制清晰的循環(huán)結(jié)構(gòu),可以用一個(gè)更加清晰的語句結(jié)構(gòu)來描述。,for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)語句,for循環(huán)語句的語法是:,#include stdio.h void main() int i,sum=0,n; printf(“n請輸入一個(gè)整數(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語句的關(guān)鍵點(diǎn),三個(gè)表達(dá)式和循環(huán)體語句運(yùn)行的順序。
6、? 注意:for語句的書寫可以非常靈活!但要避免死循環(huán)! 表達(dá)式1起什么作用?如果省略會(huì)怎樣? 表達(dá)式2起什么作用?如果省略會(huì)怎樣? 表達(dá)式3起什么作用?如果省略會(huì)怎樣?,思考1:如果循環(huán)體不是一條語句而是一組語句,怎么辦? 思考2:可以采用另外一種for語句來達(dá)到同樣的求和目的嗎?,4.5 多重循環(huán),循環(huán)體語句可以是三種基本結(jié)構(gòu)中的任意一種 如果在一個(gè)循環(huán)體內(nèi)又包含另一個(gè)循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。,例 請編寫程序在一行內(nèi)輸出整數(shù)1到20,并連續(xù)輸出5行。,使用逐步求精法,i=1,i,=5,在一行內(nèi)輸出整數(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語句提前退出整個(gè)循環(huán) 在循環(huán)體中遇到continue語句提前結(jié)束當(dāng)次循環(huán),EContinue.C,幾種循環(huán)的比較,三種循環(huán)語句都可以互相代替。 退出條件簡單且循環(huán)變量按照遞增或者遞減的規(guī)律變化。
8、時(shí),使用for語句結(jié)構(gòu)較為清晰。,4.8 程序舉例,求和(積) 窮舉 迭代,窮舉,窮舉的基本思想是一一列舉所有可能進(jìn)行測試,從中找出符合條件的解。,實(shí)戰(zhàn)分析:求兩個(gè)整數(shù)的最小公倍數(shù),公倍數(shù)必定能夠被兩個(gè)整數(shù)整除。 最小公倍數(shù)必定大于或者等于兩個(gè)整數(shù)中最大的那一個(gè)。 如果我們從最大的整數(shù)開始往上一一尋找,那么第一個(gè)發(fā)現(xiàn)的就應(yīng)該是最小公倍數(shù)。,gbsAgys.C,算法分析(窮舉法) 先找到兩個(gè)整數(shù)中最大的那一個(gè),令為A。 檢查A是否能被這兩個(gè)整數(shù)整除,如果是,跳轉(zhuǎn)到第3步,否則將A中的值加1,繼續(xù)執(zhí)行第2步。(窮舉) A中的值是最小公倍數(shù),實(shí)戰(zhàn)分析:用分和分硬幣組合成元錢,請列出所有可能,假設(shè)、分。
9、別代表分和分的硬幣個(gè)數(shù),如果x,y是合適的組合,那么應(yīng)有 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,迭代(遞推),遞推就是采用不斷由已知推出新值,直到求得解為止。,實(shí)戰(zhàn)舉例:求兔子的個(gè)數(shù),有一對兔子,從出生后第3個(gè)月起每個(gè)月都生一對兔子。小兔子長到第3個(gè)月后每個(gè)月又生一對兔子。假設(shè)所有兔子都不死,問第20個(gè)月的兔子總數(shù)為多少對?,算法分析,用s1代表月齡為1的兔子對數(shù),s2代表月齡為2的兔子對數(shù),s3代表月齡為大于。
10、等于3的兔子對數(shù)。那么s1+s2+s3的和為兔子的總對數(shù),用total代表。 第一個(gè)月:s1=1,s2=0,s3=0; total等于多少? 第二個(gè)月的s1,s2,s3,total等于多少? 第三個(gè)月的s1,s2,s3,total等于多少? 如果已經(jīng)知道第n月的各個(gè)月齡的兔子對數(shù)分別為:s1,s2,s3;那么第n+1月的各個(gè)月齡的兔子對數(shù)分別為多少?,s2 + s3(上個(gè)月的) s3(本月) s1(上個(gè)月的)s2(本月) s3(本月的)s1(本月),用偽代碼描述算法,s1=1,s2=0,s3=0;i=1; /*i為循環(huán)變量*/ 輸出 “第1個(gè)月兔子對數(shù):”,s1s2+s3; 循環(huán)以下語句,直到。
11、i大于20 s2 + s3(上個(gè)月的) s3 s1(上個(gè)月的) s2 s3(本月的) s1 輸出 “第i個(gè)月兔子對數(shù):”,s1+s2+s3 i+1 i ,E0670.C,小結(jié)(下),for循環(huán)中三個(gè)表達(dá)式和循環(huán)體運(yùn)行的順序 什么叫循環(huán)的嵌套 break語句的作用 continue語句的作用 窮舉算法 迭代算法,課堂作業(yè)一,、編寫求n!的程序:要求輸入,然后計(jì)算輸出n的階乘。 提示:(算法思路) 1fac fac *1 fac fac *2 fac fac *n fac,課外練習(xí),.110 4 1 4-6 4-8 4 15 *4 - 5 *4-12 #4-17 #4-20(有挑戰(zhàn)性的問題),上機(jī)實(shí)驗(yàn)四,上機(jī)指導(dǎo)實(shí)驗(yàn)四 循環(huán)結(jié)構(gòu) 基礎(chǔ)部分:課堂作業(yè)一 提高部分: 實(shí)驗(yàn)作業(yè) 第1、第5題,實(shí)驗(yàn)步驟: (1)先自學(xué)并完成上機(jī)指導(dǎo)實(shí)驗(yàn)4 循環(huán)結(jié)構(gòu)P105-110內(nèi)容,掌握單步調(diào)試、斷點(diǎn)調(diào)試、條件斷點(diǎn)調(diào)試等調(diào)試技巧來發(fā)現(xiàn)并解決程序的邏輯錯(cuò)誤; (2)完成并提交課堂作業(yè)一的程序,程序源文件的名稱為:班級+學(xué)號后兩位+姓名+實(shí)驗(yàn)四.cpp。,* 次數(shù):1357533 已用完,請聯(lián)系開發(fā)者。
總結(jié)
以上是生活随笔為你收集整理的c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 红帽 查看分辨率,求诸位帮个
- 下一篇: 方程组c语言编程,最小二乘解方程组C语言