[計算機(jī)軟件及應(yīng)用]第6章 循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件_第1頁
[計算機(jī)軟件及應(yīng)用]第6章 循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件_第2頁
[計算機(jī)軟件及應(yīng)用]第6章 循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件_第3頁
[計算機(jī)軟件及應(yīng)用]第6章 循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件_第4頁
[計算機(jī)軟件及應(yīng)用]第6章 循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 選擇構(gòu)造程序設(shè)計選擇構(gòu)造程序設(shè)計 第6章 選擇構(gòu)造程序設(shè)計n6.1 if語句語句n6.2 switch語句語句n6.3 程序舉例程序舉例n6.4 本章小結(jié)本章小結(jié)6.1 if語句n6.1.1 if語句的三種形式n1if表達(dá)式表達(dá)式 語句語句單分支選擇語單分支選擇語句句n單分支的單分支的if選擇語句的一般形式如下:選擇語句的一般形式如下: if表達(dá)式表達(dá)式 語句語句A;6.1 if語句nif選擇構(gòu)造的流程圖如圖選擇構(gòu)造的流程圖如圖6.1所示。所示。6.1 if語句n2if表達(dá)式表達(dá)式 語句語句A else 語句語句B雙分雙分支選擇語句支選擇語句nif-else是雙分支的選擇構(gòu)造,一般形式

2、是雙分支的選擇構(gòu)造,一般形式如下:如下: if表達(dá)式表達(dá)式 語句語句A; else 語句語句B;6.1 if語句nif-else選擇語句的流程圖如圖選擇語句的流程圖如圖6.2所示。所示。 6.1 if語句n3多分支選擇語句多分支選擇語句nif-else if-else多分支選擇語句的一般形式如下:多分支選擇語句的一般形式如下: if表達(dá)式表達(dá)式1 語句語句1; else if表達(dá)式表達(dá)式2 語句語句2; else if表達(dá)式表達(dá)式3 語句語句3; else if表達(dá)式表達(dá)式n 語句語句n; else 語句語句n+1;6.1 if語句nif-else if-else多分支選擇構(gòu)造假設(shè)多分支選擇構(gòu)

3、造假設(shè)有有4個條件的流程圖如圖個條件的流程圖如圖6.3所示。所示。6.1 if語句 ifx1 /*假如假如x1*/ y=x+4;/*y=x+4*/ else ifx=4/*假如假如x12*/ y=3*x*x-25;/*y=3x2-25*/6.1 if語句n【例例6.1】通過鍵盤輸入兩個實數(shù),編寫程序,按照從小到大的順序輸出通過鍵盤輸入兩個實數(shù),編寫程序,按照從小到大的順序輸出這兩個數(shù)。這兩個數(shù)。#includevoid mainfloat x,y,temp;/*定義了定義了3個浮點數(shù)個浮點數(shù)*/printf請輸入兩個數(shù)請輸入兩個數(shù):n;/*輸入提示信息輸入提示信息*/scanf%f,%f,&x

4、,&y; /*輸入兩個浮點數(shù)輸入兩個浮點數(shù)x和和y*/ifxy /*假如假如xy,需要交換兩個數(shù)據(jù),需要交換兩個數(shù)據(jù)*/temp=x; /*先將先將x存入到臨時變量存入到臨時變量temp中中*/x=y; /*然后將然后將y存放到變量存放到變量x中中*/y=temp; /*最后將最后將temp中的值存入到變量中的值存入到變量y中中*/ printf從小到大的順序輸出從小到大的順序輸出:%.2f,%.2fn,x,y;/*按照從小到大的順序輸出按照從小到大的順序輸出x和和y*/6.1 if語句n交換兩個數(shù)可分為兩個步驟:交換兩個數(shù)可分為兩個步驟:n1將第將第2個數(shù)個數(shù)y的值存入到第的值存入到第1個變

5、量個變量x中。中。n2將第將第1個變量個變量x中的值存入到變量中的值存入到變量y中。中。6.1 if語句n【例6.2】使用if-else if-else多分支選擇構(gòu)造編寫程序,對輸入的學(xué)生成績按照90100為優(yōu)秀,8090不包括90為良好,7080不包括80為一般,6070不包括70為及格,060不包括60為不及格。6.1 if語句6.1 if語句#includevoid mainfloat score;/*定義變量定義變量score表示成績表示成績*/printf請輸入一個學(xué)生成績請輸入一個學(xué)生成績0100n;scanf%f,&score;/*輸入成績賦給輸入成績賦給score*/ifsco

6、re=90 /*假如假如score=90*/printf優(yōu)秀優(yōu)秀n;/*輸出輸出優(yōu)秀優(yōu)秀*/else ifscore=80/*假如假如score在在8089之間之間*/printf良好良好n;/*輸出輸出良好良好*/else ifscore=70/*假如假如score在在7079之間之間*/printf一般一般n;/*輸出輸出一般一般*/else ifscore=60/*假如假如score在在6069之間之間*/printf及格及格n;/*輸出輸出及格及格*/else/*假如假如score在在60以下以下*/printf不及格不及格n;/*輸出輸出不及格不及格*/6.1 if語句6.1.2 i

7、f語句的嵌套6.1 if語句n例如,求例如,求a、b、c三者中的最大者,代碼如下:三者中的最大者,代碼如下:ifabifbcprintf“最大者是:最大者是:%dn,c; elseprintf“最大者是:最大者是:%dn,b; else ifacprintf“最大者是:最大者是:%dn,c;elseprintf“最大者是:最大者是:%dn,a;6.1 if語句n【例6.3】使用嵌套的if選擇構(gòu)造編寫出如下的階躍函數(shù)的程序。6.1 if語句#includevoid main int x,y;/*定義變量x和y*/ printf請輸入一個整數(shù):n; scanf%d,&x; /*輸入x的值*/ if

8、xb max=a; elsemax=b;n當(dāng)當(dāng)ab時,將時,將a的值賦給的值賦給max;當(dāng);當(dāng)ab時,將時,將b的值賦的值賦給給max。無論。無論ab是否滿足,都對同一個變量賦值。是否滿足,都對同一個變量賦值??捎靡韵聴l件運算符實現(xiàn):可用以下條件運算符實現(xiàn):nmax=ab?a:b;6.1 if語句n條件表達(dá)式的一般形式如下: 表達(dá)式1?表達(dá)式2:表達(dá)式3n表達(dá)式1、表達(dá)式2和表達(dá)式3可以是任意類型的表達(dá)式。 6.1 if語句【例例6.3】輸入整型變量輸入整型變量a、b、c的值,求出的值,求出a、b、c三者中的最大者,三者中的最大者,并輸出。并輸出。#include void mainint a

9、,b,c,max;/*定義變量定義變量a、b、c和和max*/printf輸入輸入a、b、c的值:的值:n;scanf%d,%d,%d,&a,&b,&c; /*輸入變量輸入變量a、b、c的值的值*/max=cab?a:b?c:ab?a:b;/*求求a、b、c的最大的一個的最大的一個*/printfmax=%dn,max;/*輸出輸出max*/6.2 switch語句n當(dāng)分支過多時,常用switch語句代替if語句來簡化程序的設(shè)計。switch語句就像多路開關(guān)一樣,使過程控制流形成多個分支,根據(jù)一個表達(dá)式可能產(chǎn)生的不同結(jié)果,選擇其中一個或者幾個分支語句去執(zhí)行,所以又稱開關(guān)語句。6.2 switc

10、h語句C語言提供的語言提供的switch語句直接處理多分支選擇,它的一般形式如下:語句直接處理多分支選擇,它的一般形式如下: switch表達(dá)式表達(dá)式 case 常量表達(dá)式常量表達(dá)式1: 語句語句1; break; case 常量表達(dá)式常量表達(dá)式2: 語句語句2; break; case 常量表達(dá)式常量表達(dá)式n: 語句語句n; break; default: 語句語句n+1; break;6.2 switch語句switch語句的流程圖如圖語句的流程圖如圖6.10所示。所示。6.2 switch語句n【例例6.4】通過鍵盤輸入一個學(xué)生的成績通過鍵盤輸入一個學(xué)生的成績0100,按照以下規(guī)那么對學(xué)

11、生成績,按照以下規(guī)那么對學(xué)生成績劃分等級。劃分等級。 學(xué)生成績學(xué)生成績90,等級為,等級為A 80學(xué)生成績學(xué)生成績90,等級為,等級為B 70學(xué)生成績學(xué)生成績80,等級為,等級為C 60學(xué)生成績學(xué)生成績70,等級為,等級為D 學(xué)生成績學(xué)生成績60,等級為,等級為E6.2 switch語句#includevoid mainfloat score;int grade;printf請輸入一個學(xué)生成績請輸入一個學(xué)生成績:n;scanf%f,&score;grade=intscore/10;switchgrade case 0: /*成績在成績在10分以下分以下*/ case 1: /*成績在成績在20

12、分以下分以下*/ case 2: /*成績在成績在30分以下分以下*/ case 3: /*成績在成績在40分以下分以下*/ case 4: /*成績在成績在50分以下分以下*/ case 5:/*成績在成績在60分以下分以下*/ printf等級為等級為E.n; break;6.2 switch語句case 6:/*成績在成績在60分以上分以上70分以下分以下*/printf等級為等級為D.n;break;case 7: /*成績在成績在70分以上分以上80分以下分以下*/printf等級為等級為C.n;break;case 8: /*成績在成績在80分以上分以上90分以下分以下*/prin

13、tf等級為等級為B.n;break;case 9: /*成績在成績在90分以上分以上*/case 10:/*成績?yōu)槌煽優(yōu)?00分分*/printf等級為等級為A.n;break;6.3 程序舉例【例例6.5】編寫程序,判斷某一年是否是閏年。編寫程序,判斷某一年是否是閏年。 #include void main int year,leap; scanf%d,&year; if!year%4 if!year%100if!year%400leap=1;else leap=0;else leap=1; else leap=0; ifleap printf%d is ,year; else printf

14、%d is not ,year; printfa leap year.n;6.3 程序舉例【6.6】給定一個不多于給定一個不多于5位的正整數(shù),要求:位的正整數(shù),要求:1.求它是幾位數(shù);求它是幾位數(shù);2.分別打印每一位數(shù)字;分別打印每一位數(shù)字;3.按逆序打印各位數(shù)字。按逆序打印各位數(shù)字。6.3 程序舉例n【例例6.7】運輸公司根據(jù)路程的遠(yuǎn)近對用戶計算運費。運輸公司根據(jù)路程的遠(yuǎn)近對用戶計算運費。路程路程s越遠(yuǎn),每公里運費就越低。標(biāo)準(zhǔn)如下:越遠(yuǎn),每公里運費就越低。標(biāo)準(zhǔn)如下: s250km 沒有折扣沒有折扣 250s500 2的折扣的折扣 500s1000 5的折扣的折扣 1000s2000 8的折扣

15、的折扣 2000s3000 10的折扣的折扣 3000s 15的折扣的折扣n設(shè)每公里每噸貨物的根本運費為設(shè)每公里每噸貨物的根本運費為p,貨物重為,貨物重為w,間隔,間隔 為為s,折扣為,折扣為d,那么總運費,那么總運費f的計算公式為:的計算公式為:6.3 程序舉例#include void main int c,s;double p,w,d,f;scanf%lf %lf %d,&p,&w,&s;ifs=3000c=12;else c=s/250;switchccase 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;5.4 格式輸入輸出case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;f=p*w*s*1-d/100.0;printf總費用總費用:%fn,f; 6.4 本章小結(jié)本章主要介紹了本章主要介紹了C語言中的選擇構(gòu)造程序設(shè)計。選擇語言中的選擇構(gòu)造程序設(shè)計。選擇構(gòu)造主要通過構(gòu)造主要通過if語句和語句和switch語句實現(xiàn),假如都向語句實現(xiàn),假如都向同一

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論