C語(yǔ)言程序設(shè)計(jì)--循環(huán)例子.pptx_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)--循環(huán)例子.pptx_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)--循環(huán)例子.pptx_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)--循環(huán)例子.pptx_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)--循環(huán)例子.pptx_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C 語(yǔ)言程序設(shè)計(jì)基礎(chǔ)篇,第 7 章 簡(jiǎn)單程序設(shè)計(jì)之二,2020年10月7日,本章內(nèi)容提要,多分支選擇結(jié)構(gòu)switch語(yǔ)句 循環(huán)嵌套 break語(yǔ)句和continue語(yǔ)句 程序舉例,2020年10月7日,教學(xué)目標(biāo),在三種基本結(jié)構(gòu)的基礎(chǔ)上,結(jié)合本章介紹流程控制的其他幾個(gè)語(yǔ)句:switch語(yǔ)句、break語(yǔ)句和continue語(yǔ)句及循環(huán)的嵌套,實(shí)現(xiàn)復(fù)雜的算法,設(shè)計(jì)出結(jié)構(gòu)清晰、功能強(qiáng)大的程序,對(duì)C語(yǔ)言程序開(kāi)發(fā)設(shè)計(jì)有比較深刻的認(rèn)識(shí)。,2020年10月7日,7.1 多分支選擇結(jié)構(gòu)程序設(shè)計(jì),1、語(yǔ)句形式:,switch (表達(dá)式) case 常量1: 語(yǔ)句1; case 常量2: 語(yǔ)句2; case 常量3

2、: 語(yǔ)句3; . case 常量n: 語(yǔ)句n; default : 語(yǔ)句n+1; ,根據(jù)表達(dá)式的不同值,選擇不同的程序分支,又稱開(kāi)關(guān)語(yǔ)句。,數(shù)值型 或 字符型,常量表達(dá)式的值必須互不相同,否則執(zhí)行時(shí)將出現(xiàn)矛盾,即同一個(gè)開(kāi)關(guān)值,將對(duì)應(yīng)多種執(zhí)行方案。,2020年10月7日,2、語(yǔ)句執(zhí)行流程:,指語(yǔ)句的最后一條是否為break,簡(jiǎn)單語(yǔ)句或復(fù)合語(yǔ)句,case語(yǔ)句出 現(xiàn)的次序并 不影響執(zhí)行 結(jié)果。,2020年10月7日,void main() int n; printf(請(qǐng)輸入成績(jī):); scanf(%d, ,【例7.1】編寫(xiě)程序,對(duì)學(xué)生成績(jī)進(jìn)行等級(jí)評(píng)定。將成績(jī)分為幾個(gè)等級(jí):059分為不及格,6069分

3、為及格,7079分為中等,8089分為良好,90100分為優(yōu)秀。要求輸入一個(gè)成績(jī),輸出其對(duì)應(yīng)的等級(jí)。,請(qǐng)輸入成績(jī):78 成績(jī)78的等級(jí)為中等 成績(jī)78的等級(jí)為及格 成績(jī)78的等級(jí)為不及格,出錯(cuò)啦???,2020年10月7日,在“switch”語(yǔ)句中,“case 常量表達(dá)式”只相當(dāng)于一個(gè)語(yǔ)句標(biāo)號(hào),表達(dá)式的值和某標(biāo)號(hào)相等則轉(zhuǎn)向該標(biāo)號(hào)執(zhí)行,但不能在執(zhí)行完該標(biāo)號(hào)的語(yǔ)句后自動(dòng)跳出整個(gè)switch 語(yǔ)句,因此會(huì)繼續(xù)執(zhí)行所有后面語(yǔ)句的情況。 為此,語(yǔ)言提供了一種break語(yǔ)句,其功能是可以跳出它所在的switch語(yǔ)句。,2020年10月7日,將上面的例7.1修改如下:,void main() int n; p

4、rintf(請(qǐng)輸入成績(jī):); scanf(%d, ,請(qǐng)輸入成績(jī):78 成績(jī)78的等級(jí)為中等,2020年10月7日,使用switch語(yǔ)句時(shí)還應(yīng)注意以下幾點(diǎn),switch后面圓括號(hào)內(nèi)表達(dá)式的值和case語(yǔ)句中常量表達(dá)式的值,都必須是整型的、枚舉型的或字符型的,不允許是浮點(diǎn)型的。在case后的各常量表達(dá)式的值不能相同。 每個(gè)case子句既可以是一條語(yǔ)句,也可以是多條語(yǔ)句。當(dāng)是多條語(yǔ)句時(shí),不需要用花括號(hào)括起來(lái)。 各個(gè)case子句和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。 default子句可以省略不用。 多個(gè)case的后面可以共用一組執(zhí)行語(yǔ)句 。如例7.1中等級(jí)為優(yōu)秀的判斷程序可

5、改為:,2020年10月7日,switch(int)(n/10) case 10: case 9: printf(成績(jī)%d的等級(jí)為優(yōu)秀n); break; ,2020年10月7日,7.2 嵌套循環(huán)結(jié)構(gòu)程序設(shè)計(jì),在一個(gè)循環(huán)內(nèi)又完整地包含另一個(gè)循環(huán),稱為循環(huán)的嵌套。for語(yǔ)句可以與while語(yǔ)句、do-while語(yǔ)句相互嵌套,構(gòu)成多重循環(huán),例如:,2020年10月7日,(1) (2) for() do while() for() while(); (3) (4) while() for() for() for() ,2020年10月7日,for (i=1;i=9;i+) 打印第i行; ,【例7.2

6、】打印乘法小九九表。,使用一個(gè)循環(huán)9次的循環(huán)語(yǔ)句,每次循環(huán)打印一行:,打印第i行,循環(huán)i次,每次循環(huán)打印一個(gè)表達(dá)式:,for (j=1;j=i;j+) 打印第j個(gè)表達(dá)式; ,打印完一行后換行,2020年10月7日,#include void main() int i,j; for (i=1;i=9;i+) for (j=1;j=i;j+) printf(%d*%d=%-3d,i,j,i*j); printf(n); ,程序運(yùn)行情況如下: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=

7、15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81,2020年10月7日,【例7.3】百雞問(wèn)題。,#includestdio.h void main() int x,y,z; for(x=1;x=20;x+

8、) /*用嵌套的for循環(huán)依次設(shè)公雞有1,2,20只*/ for(y=1;y=33;y+) /*設(shè)母雞有1,2,33只*/ for (z=3;z100;z+=3) /*設(shè)小雞有3,6,99只*/ if (x*5+y*3+z/3=100 ,程序運(yùn)行結(jié)果如下: 公雞4只、母雞18只、小雞78只 公雞8只、母雞11只、小雞81只 公雞12只、母雞4只、小雞84只,2020年10月7日,7.3 break語(yǔ)句和continue語(yǔ)句在循環(huán)中的應(yīng)用,break語(yǔ)句只能用在switch語(yǔ)句或循環(huán)語(yǔ)句中,其作用是跳出switch語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的程序。由于break語(yǔ)句的轉(zhuǎn)移方向是明確的,所以

9、不需要語(yǔ)句標(biāo)號(hào)與之配合。break語(yǔ)句的一般形式為 break; 注意: break語(yǔ)句對(duì)if-else的條件語(yǔ)句不起作用。 在多層循環(huán)中,一個(gè)break語(yǔ)句只向外跳一層。 使用break語(yǔ)句可以使循環(huán)語(yǔ)句有多個(gè)出口,2020年10月7日,continue 語(yǔ)句,continue語(yǔ)句只能用在循環(huán)體中,其一般格式是: continue; 其語(yǔ)義是:結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue 語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。應(yīng)注意的是,本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)。 continue語(yǔ)句只用在for、while、do-while等循環(huán)體中,常與if條件語(yǔ)句一起使用

10、,用來(lái)加速循環(huán)。 1) while(表達(dá)式1) if(表達(dá)式2)break; ,2) while(表達(dá)式1) if(表達(dá)式2)continue; ,2020年10月7日,2020年10月7日,【例7.4】輸出100以內(nèi)能被7整除的數(shù)。,#include stdio.h void main() int n; for(n=1;n=100;n+) if (n%7!=0) continue; printf(%d ,n); printf(n); ,程序運(yùn)行情況如下: 7 14 21 28 35 42 49 56 63 70 77 84 91 98,2020年10月7日,【例7.5】判斷m是否素?cái)?shù),#in

11、clude #include int main() int m, i, k; scanf(%d, ,2020年10月7日,7.4 程序舉例 【例7.6】模擬自動(dòng)飲料機(jī),#include stdio.h void main() int button; printf(=自動(dòng)飲料機(jī)=n); printf(1.可口可樂(lè)n); printf(2.雪碧n); printf(3.百事可樂(lè)n); printf(4.芬達(dá)n); printf(5.非常可樂(lè)n); printf(請(qǐng)按15鍵選擇飲料:n); scanf(%d,2020年10月7日,switch(button) case 1: printf(n你獲得一

12、聽(tīng)可口可樂(lè)n); break; case 2: printf(n你獲得一聽(tīng)雪碧n); break; case 3: printf(n你獲得一聽(tīng)百事可樂(lè)n); break; case 4: printf(n你獲得一聽(tīng)芬達(dá)n); break; case 5: printf(n你獲得一聽(tīng)非常可樂(lè)n); break; default: printf(n非法操作!n); ,程序運(yùn)行情況如下: =自動(dòng)飲料機(jī)= 1可口可樂(lè) 2雪碧 3百事可樂(lè) 4芬達(dá) 5非??蓸?lè) 請(qǐng)按15鍵選擇飲料: 3 你獲得一聽(tīng)百事可樂(lè),2020年10月7日,【例7.10】數(shù)組元素排序冒泡排序(以升序?yàn)槔?排序過(guò)程: 比較第一個(gè)數(shù)與第

13、二個(gè)數(shù),若為逆序a0a1,則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類(lèi)推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上 對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個(gè)元素位置 重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟冒泡排序后,排序結(jié)束,2020年10月7日,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,27,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,2020年10月7日,#include main() int a10,i,j,t; printf(Input 10 numbers:n); for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; printf(The sorted numbers:n); for(i=0;i10;i+) printf(%d ,ai); ,2020年10月7日,【例7.11】數(shù)組元素排序選擇排序(以升序?yàn)槔?排序過(guò)程: 首先通過(guò)n-1次比較,從n個(gè)數(shù)中找出最小的, 將它與第一個(gè)數(shù) 交換第一趟選

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論