![計算機與程序設(shè)計基礎(chǔ)C++:第3章 分支條件選擇流程控制程序設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/f47202fa-3166-447c-9aa7-b6438e87a68a/f47202fa-3166-447c-9aa7-b6438e87a68a1.gif)
![計算機與程序設(shè)計基礎(chǔ)C++:第3章 分支條件選擇流程控制程序設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/f47202fa-3166-447c-9aa7-b6438e87a68a/f47202fa-3166-447c-9aa7-b6438e87a68a2.gif)
![計算機與程序設(shè)計基礎(chǔ)C++:第3章 分支條件選擇流程控制程序設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/f47202fa-3166-447c-9aa7-b6438e87a68a/f47202fa-3166-447c-9aa7-b6438e87a68a3.gif)
![計算機與程序設(shè)計基礎(chǔ)C++:第3章 分支條件選擇流程控制程序設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/f47202fa-3166-447c-9aa7-b6438e87a68a/f47202fa-3166-447c-9aa7-b6438e87a68a4.gif)
![計算機與程序設(shè)計基礎(chǔ)C++:第3章 分支條件選擇流程控制程序設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/f47202fa-3166-447c-9aa7-b6438e87a68a/f47202fa-3166-447c-9aa7-b6438e87a68a5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、LOGO網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心第第3 3章分支條件選擇流程控制程序設(shè)計章分支條件選擇流程控制程序設(shè)計本 章 概 述1學(xué) 習(xí) 目 標2主 要 內(nèi) 容3本 章 小 結(jié)4LOGO第第3 3章分支條件選擇流程控制程序設(shè)計章分支條件選擇流程控制程序設(shè)計網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心3.1 if分支條件選擇結(jié)構(gòu)13.2 switch開關(guān)語句23.3 條件分支選擇結(jié)構(gòu)的綜合應(yīng)用34LOGO本章概述本章概述n順序結(jié)構(gòu)的程序雖然能解決輸入、計算、輸出等問題,但它不能解決程序執(zhí)行過程中先做判斷再選擇的操作。n本章以實例為引導(dǎo),循序漸進地介紹單分支、雙分支和多分支條件選擇等三種if流程控制語句和開關(guān)語句(swi
2、tch語句)的結(jié)構(gòu)形式和應(yīng)用特點等方面知識,通過對本章知識的學(xué)習(xí),掌握C+的三大流程控制結(jié)構(gòu)中分支條件選擇結(jié)構(gòu)的基本語法和應(yīng)用知識。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO利用海倫公式計算三角形面積利用海倫公式計算三角形面積網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心)()(2/ )(clblallscbal輸入a=3,b=4,c=5后,結(jié)果是多少?輸入輸入a=1,b=1,c=3呢?呢?為什么?怎么辦?為什么?怎么辦?LOGO3.1.13.1.1單分支條件選擇結(jié)構(gòu)語句單分支條件選擇結(jié)構(gòu)語句單分支結(jié)構(gòu)的語法格式與執(zhí)行流程語法格式及執(zhí)行流程:語法格式及執(zhí)行流程: if(if(表達式表達式) ) 單語句單語句或if(i
3、f(表達式表達式) 語句塊語句塊 網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心假(0)表達式語句真(1)LOGO邏輯運算、邏輯表達式邏輯運算:邏輯運算:用于判斷分析,運算符包括用于判斷分析,運算符包括關(guān)系關(guān)系和和邏輯邏輯運算符。運算符。關(guān)系運算符:關(guān)系運算符:包括:包括: (大于)、(大于)、(大于等于)、(大于等于)、 (小于)、(小于)、(小(小于等于);于等于);= = =(等于)和?。ǖ扔冢┖停? =(不等于)(不等于) 。關(guān)系運算符完。關(guān)系運算符完成兩個操作數(shù)大小的比較,結(jié)果為邏輯值成兩個操作數(shù)大小的比較,結(jié)果為邏輯值true(true(真真) )或或falsefalse(假)(假)。邏輯值與整數(shù)的
4、對應(yīng)關(guān)系是什么?邏輯值與整數(shù)的對應(yīng)關(guān)系是什么?邏輯值能參與運算嗎?邏輯值能參與運算嗎?LOGO關(guān)系表達式:例如:例如:a+bc+d /*等同于等同于(a+b)(c+d) */y=ab /*計算計算ab的值的值0或或1賦給賦給y*/abc /*等同于等同于(ab)c,先求,先求ab 的值,的值, 再將結(jié)果再將結(jié)果0或或1與與c比較大小比較大小*/由關(guān)系運算符連接的表達式。是一種簡單的邏輯表達式。由關(guān)系運算符連接的表達式。是一種簡單的邏輯表達式。值為值為truetrue或或falsefalse。數(shù)學(xué)式數(shù)學(xué)式abc ,對應(yīng)的關(guān)系表達式為什么?,對應(yīng)的關(guān)系表達式為什么?LOGO設(shè)有定義設(shè)有定義 flo
5、at a=3.2;int b=5; ;則則: : 3ab/結(jié)果是結(jié)果是?其運算其運算過程如下:過程如下:a5b3.23T, 即即1T即即1LOGO運算運算符符名名 稱稱語語 義義!邏輯非邏輯非, 單目單目操作數(shù)的值為真,則結(jié)果為假操作數(shù)的值為真,則結(jié)果為假;反之結(jié)反之結(jié)果為真果為真&邏輯與邏輯與,雙目雙目當兩個操作數(shù)全為真時,結(jié)當兩個操作數(shù)全為真時,結(jié)果為真,否則為假果為真,否則為假;|邏輯或邏輯或,雙目雙目兩個操作數(shù)中有一個為真,則結(jié)果為兩個操作數(shù)中有一個為真,則結(jié)果為真真;邏輯運算符:邏輯運算符:包括:包括:! !、&和和|,語義見下表。,語義見下表。LOGO由邏輯運算符連接的表達式,由邏
6、輯運算符連接的表達式,其操作數(shù)和運算其操作數(shù)和運算結(jié)果均為結(jié)果均為邏輯量邏輯量。操作數(shù)可以是表達式,只要其值是。操作數(shù)可以是表達式,只要其值是邏輯量邏輯量,如關(guān)系表,如關(guān)系表達式。達式。 由于由于邏輯值邏輯值和和整數(shù)整數(shù)之間的之間的對應(yīng)關(guān)系,對應(yīng)關(guān)系,也允許也允許整型整型和和字字符型符型操作數(shù)進行操作數(shù)進行邏輯運算邏輯運算:21&021&0/邏輯與,邏輯與,2121與與0 0,結(jié)果,結(jié)果? ?21|021|0/邏輯或,邏輯或,2121或或0 0,結(jié)果,結(jié)果? ?!21!21/邏輯非,邏輯非,2121的非,結(jié)果的非,結(jié)果? ?運算結(jié)果同樣可以作為一個運算結(jié)果同樣可以作為一個整數(shù)整數(shù)參與其他運算。
7、參與其他運算。 邏輯表達式:邏輯表達式:邏輯表達式計算時,邏輯非優(yōu)先級最高,關(guān)系運算其次,邏輯表達式計算時,邏輯非優(yōu)先級最高,關(guān)系運算其次,邏輯與和邏輯或最低。邏輯與和邏輯或最低。 LOGO3.1.13.1.1單分支條件選擇結(jié)構(gòu)語句單分支條件選擇結(jié)構(gòu)語句單單分支結(jié)構(gòu)應(yīng)用程序分支結(jié)構(gòu)應(yīng)用程序舉例舉例【例例3.33.3】編程求兩個數(shù)中大數(shù)并輸出。編程求兩個數(shù)中大數(shù)并輸出。#include using namespace std;int main() int a,b,max; coutab; max=a; if (maxb) max=b; coutmaxendl; return 0;網(wǎng)絡(luò)與計算中心網(wǎng)
8、絡(luò)與計算中心LOGO3.1.2 3.1.2 雙分支條件選擇結(jié)構(gòu)語句雙分支條件選擇結(jié)構(gòu)語句雙雙分支結(jié)構(gòu)的語法格式與執(zhí)行分支結(jié)構(gòu)的語法格式與執(zhí)行流程流程n雙分支條件選擇結(jié)構(gòu)中使用C+語言規(guī)定的關(guān)鍵字有if和else兩種n這兩個關(guān)鍵字需要一起配對使用才能完成雙分支條件選擇的功能網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心if(表達式) 分支語句塊1;else 分支語句塊2;LOGO3.1.2 3.1.2 雙分支條件選擇結(jié)構(gòu)語句雙分支條件選擇結(jié)構(gòu)語句2.雙分支結(jié)構(gòu)應(yīng)用程序舉例n【例例3.43.4】汽車超速判斷程序。汽車超速判斷程序。 #include using namespace std; int main() i
9、nt velocity; coutvelocity; if(velocity60) cout”超速!“endl; else cout”正常!“60) cout”超速!“endl; else cout”正常!“endl; 網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO3.1.2 3.1.2 雙分支條件選擇結(jié)構(gòu)語句雙分支條件選擇結(jié)構(gòu)語句3.條件表達式(?:運算符)網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心 x=x=?:3通常用條件表達式構(gòu)成一個賦值語句,通常用條件表達式構(gòu)成一個賦值語句,其一般形式如下其一般形式如下 max=(ab)?amax=(ab)?a:b b運用條件表達式可寫出如下語句:運用條件表達式可寫出如下語句
10、: x=x=?:?:5多個條件表達式連在一起:多個條件表達式連在一起:LOGO3.1.33.1.3多分支條件選擇語句多分支條件選擇語句1.多分支結(jié)構(gòu)的語法格式與執(zhí)行流程n多分支條件選擇結(jié)構(gòu)語法格式如下:多分支條件選擇結(jié)構(gòu)語法格式如下:網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心多分支條件選擇結(jié)構(gòu)中使用關(guān)鍵字只有if、else兩種ifif(表達式(表達式1 1) 分支語句塊分支語句塊1 1; else if(else if(表達式表達式2)2) 分支語句塊分支語句塊2 2; else if(else if(表達式表達式n-1)n-1) 分支語句塊分支語句塊n-1n-1;elseelse 分支語句塊分支語句塊n;
11、n; LOGO3.1.33.1.3多分支條件選擇語句多分支條件選擇語句多分支條件選擇語句的語法含義:網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心表達式1分支語句1表達式2表達式n-1分支語句2分支語句n-1分支語句n假(0)假(0)假(0)假(0)真(1)真(1)真(1)真(1)LOGO3.1 if3.1 if分支條件選擇結(jié)構(gòu)分支條件選擇結(jié)構(gòu)n顧客購買的商品的總額大于等于400元時,用戶享受商場9折優(yōu)惠n客戶購買商品總金額達到245元以上而少于400元時,用戶享受商場95折優(yōu)惠n客戶購買商品總金額達到125元以上低于245元時,用戶享受商場97折優(yōu)惠。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO【例例3.13.1】用
12、程序?qū)崿F(xiàn)商場打折問題的程序。用程序?qū)崿F(xiàn)商場打折問題的程序。#includeusing namespace std;int main() doubleamount; coutamount; if(amount = 400) cout 用戶實際支付購買商品的金額總數(shù)為:amount*0.9= 245) cout 用戶實際支付購買商品的金額總數(shù)為:amount*0.95= 125) cout 用戶實際支付購買商品的金額總數(shù)為:amount*0.97endl; else cout 用戶實際支付購買商品的金額總數(shù)為:amountendl; return 0;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO3.1.3
13、3.1.3多分支條件選擇語句多分支條件選擇語句2. 2. 多分支結(jié)構(gòu)應(yīng)用程序舉例多分支結(jié)構(gòu)應(yīng)用程序舉例n【例例3.53.5】有三個乒乓球,其中兩個球的重量相同,要求能用最少的有三個乒乓球,其中兩個球的重量相同,要求能用最少的天平稱球次數(shù)找到那個重量不一樣的球。天平稱球次數(shù)找到那個重量不一樣的球。#includeusing namespace std;int main() int a,b, c; cinabc; if(a=b) /如果條件成立,說明c球就是要找的球 cout”c球就是要找的球!n”; else if(a=c) /如果條件成立,說明b球就是要找的球 coutb球就是要找的球!n;
14、else cout=0&x=100) if(x=60) cout成績合格!endl; else cout成績不合格!endl;else cout輸入數(shù)據(jù)錯誤=0&x=100)if(x=60)cout成績合格!endl;elsecout成績不合格!endl;elsecout輸入數(shù)據(jù)錯誤endl;LOGO3.1.43.1.4條件分支結(jié)構(gòu)中的條件分支結(jié)構(gòu)中的if if嵌套問題嵌套問題n【例例3.73.7】輸入輸入x x,輸出,輸出y y。x x和和y y滿足數(shù)學(xué)分段函數(shù)滿足數(shù)學(xué)分段函數(shù)關(guān)系如下:關(guān)系如下:網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO表達式else if(x1)else if(-5=x&x1)
15、 else if(x1)else if(-5=x1) 表達式y(tǒng)=2*x+5y=2x+5 y=3*x-2y=3x-2 注注意意3.1.43.1.4條件分支結(jié)構(gòu)中的條件分支結(jié)構(gòu)中的if if嵌套問題嵌套問題#includeusing namespace std;int main() doublex,y; cout“請輸入x的值:”x; if(x-5) y=x; else if(x1) y=2*x+5; else if(x4) y=x+6; else y=3*x-2; cout”計算結(jié)果為:”y;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO說明:n 這是一個典型的if語句嵌套結(jié)構(gòu)。n 如果不使用括號,那么i
16、f和else的對應(yīng)關(guān)系會很容易變亂。n 第8,12,16行開始的三個雙分支結(jié)構(gòu)代碼書寫的形式。當條件語句的語句塊中只有單條語句時,將這一條語句寫到條件判斷表達式和else的后面并用空格隔開,。3.1.43.1.4條件分支結(jié)構(gòu)中的條件分支結(jié)構(gòu)中的if if嵌套問題嵌套問題【例例3-83-8】輸入三個數(shù)輸入三個數(shù)x, x, y,zy,z, ,然后按從大然后按從大到小輸出。到小輸出。#includeusing namespace std;int main() double x,y,z; cinxyz; if(x=y&x=z) coutx=z) couty z; /分支結(jié)構(gòu)中的語句塊只有一條語句時,可
17、這樣寫 else coutz =x&y=z) couty=z) coutx z; else coutzx; else coutz=y) coutx y; else couty x; LOGO3.2 switch3.2 switch開關(guān)語句開關(guān)語句 在C+語言程序中,運用多級if-else是為了那些可能需要進行多級判斷才能做出選擇的情況。如前面3.1.4節(jié)中例3.7所講的例子。如果正好x的值是大于且等于4時,程序照樣還得從最開始的條件分支語句if(表達式)開始進行判斷,一直要做到最后的else分支結(jié)構(gòu)才會結(jié)束整個的分支結(jié)構(gòu)中所有條件判斷的過程。為了簡化這種多級判斷的過程,C+語言又提供了另一種多
18、分支結(jié)構(gòu)的形式,稱作switch開關(guān)語句。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO3.2.1 switch3.2.1 switch開關(guān)語句開關(guān)語句1. switch1. switch語句的格式特點及執(zhí)行流程語句的格式特點及執(zhí)行流程nswitch開關(guān)語句的幾個關(guān)鍵字:switch、case、break、default。switch(整型變量或字符型變量) case 常量表達式1 : 分支語句序列一;break; case 常量表達式2 : 分支語句序列二;break; . case 常量表達式n: 分支語句序列n; break; default :最后分支語句序列; /此右大括號為switch語句的
19、結(jié)束符網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心case之后可以接常量數(shù)值、字符、枚舉類型常量case之后不能接變量或帶有變量的表達式case之后不能接實型數(shù)或帶有實數(shù)的常量表達式LOGO3.2.1 switch3.2.1 switch開關(guān)語句開關(guān)語句n【例例3.93.9】網(wǎng)站訪問方式調(diào)查程序。要求模擬一個網(wǎng)站訪問方式調(diào)查程序。要求模擬一個網(wǎng)上調(diào)查。它要求網(wǎng)友輸入數(shù)字以選擇自己是如網(wǎng)上調(diào)查。它要求網(wǎng)友輸入數(shù)字以選擇自己是如何知道當前訪問的網(wǎng)頁的。程序根據(jù)網(wǎng)友輸入,何知道當前訪問的網(wǎng)頁的。程序根據(jù)網(wǎng)友輸入,打出相應(yīng)結(jié)果。打出相應(yīng)結(jié)果。n程序分析程序分析網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO3.2.1 switc
20、h3.2.1 switch開關(guān)語句開關(guān)語句#include using namespace std;int main() int whatWay; cout 請輸入序號,選擇您如何來到本網(wǎng)站。 endl; cout 1) - 通過百度搜索引擎 endl; cout 2) - 通過網(wǎng)友微博 endl; cout 3) - 通過網(wǎng)友微信 endl; cout 4) - 通過報刊、雜志 endl; cout 5) - 通過其他方法 whatWay; switch(whatWay) 網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心 case 1 : cout 您是通過百度搜索引擎來到本網(wǎng)站的。 endl;break; c
21、ase 2 : cout 您是通過網(wǎng)友微博來到本網(wǎng)站的。 endl;break; case 3 : cout 您是通過網(wǎng)友微信來到本網(wǎng)站的。 endl;break; case 4 : cout 您是通過報刊、雜志來到本網(wǎng)站的。 endl;break; case 5 : cout 您是通過其他方法來到本網(wǎng)站的。 endl;break; default : cout 錯誤的選擇!請輸入15的數(shù)字做出選擇。 endl;getchar();return 0;LOGO3.2.1 switch3.2.1 switch開關(guān)語句開關(guān)語句注意:如何讀懂switch結(jié)構(gòu)中的case語句?case 2 : cout
22、 通過網(wǎng)友微博來到本網(wǎng)站的。endl; break;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心讀上面的程序段:讀上面的程序段:n 程序輸出“通過網(wǎng)友微博來到本網(wǎng)站的?!边@行內(nèi)容之后,遇上break;于是跳出整個switch語句。n 如果沒有遇到break語句,則繼續(xù)執(zhí)行下面的case語句中的可執(zhí)行語句,直到遇見break語句時,結(jié)束switch結(jié)構(gòu)。LOGO3.2.1 switch3.2.1 switch開關(guān)語句開關(guān)語句2. switch2. switch開關(guān)語句的特點開關(guān)語句的特點n1)switch中的變量類型 只能是整型和字符類型 doublewhatWay =0.123; switch(whatWay
23、) /錯誤!變量whatway是double數(shù)據(jù)類型, 不滿switch的要求。 網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心2)switch結(jié)構(gòu)中case之后的數(shù)值switch(whatWay)case 2-1 : /正確case a-2: /錯誤必須是常量表達式,而a-2是表達式case 2.0: /錯誤必須是int或char字符常量. /在switch的每個case與常量值之后需要一個冒號。LOGO3.2.1 switch3.2.1 switch開關(guān)語句開關(guān)語句2. switch2. switch開關(guān)語句的特點開關(guān)語句的特點n3)breakbreak的作用。的作用。case 1 :cout 您是通過百度
24、搜索 引擎來到本網(wǎng)站的。 endl;case 2 :cout 您是通過朋友介紹 來到本網(wǎng)站的。 = 32 & i=48) : /錯誤 .n 不能在不能在casecase里寫里寫條件,條件,更更不能做一個范圍的條不能做一個范圍的條件件限制限制5 5)可在各個)可在各個casecase中使用大括號中使用大括號來表明組成獨立的復(fù)合語句。來表明組成獨立的復(fù)合語句。switch(whatWay) case 1 : int a=20;/錯誤。由于case內(nèi)部不明確范圍,編譯器無法在此處使用變量申明。 . case 2 : .LOGO3.2.2 switch3.2.2 switch應(yīng)用實例應(yīng)用實例n【例例3
25、.103.10】輸入一個完整的四則運算的表達輸入一個完整的四則運算的表達式并計算出結(jié)果,然后以整個表達式等于計式并計算出結(jié)果,然后以整個表達式等于計算結(jié)果的形式輸出。算結(jié)果的形式輸出。#includeusing namespace std;int main() double a,b; char oper; cout 請輸入一個表達式:aoperb; switch (oper) case +: coutaoperb=a+bendl; break;case -: coutaoperb=a-bendl; break;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心n switch語句風(fēng)格代碼平均縮進程度減少,閱讀代碼的
26、時候更簡潔易懂。n switch語句只能判斷表達式是否等于某個值,如果需要判斷變量是否處于某個范圍。則必須使用if條件判斷語句結(jié)構(gòu)來輔助完成。 case *: coutaoperb=a*bendl; break; case /: if(b!=0) cout aoperb=a/bendl; else cout 出錯啦!endl; break; default: cout 輸入內(nèi)容格式錯誤!endl; return 0;LOGO3.2.2 switch3.2.2 switch應(yīng)用實例應(yīng)用實例【例例3.113.11】將輸入學(xué)生考試成績,要求程序給出對學(xué)生的評判。要求輸入成績在大于等于80分以上,程序
27、輸出提示為“Good!”,輸入成績在高于“60”至低于“80”之間,程序輸出提示為Soso!”,若輸入成績?yōu)?0分以下,則程序輸出提示為Please work harder!”。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心#includeusing namespace std;int main() int mark; cout mark; switch(mark/20) case 5: if (mark100)/100到119的情況都是mark/20=5,所以要用if語句再次過濾 cout 成績輸入錯誤! =0)/同樣要用if過濾負數(shù) cout 請努力學(xué)習(xí)! endl; break; default:/其它情
28、況都是出錯 coutERROR! endl; return 0;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心 else cout”優(yōu)秀!”endl; break; case 4: cout 優(yōu)秀! endl; break;case 3: cout 良好! endl; break;case 2:/如果case沒有對應(yīng)的break,會運行到下一個case中。3.2.2 switch3.2.2 switch應(yīng)用實例應(yīng)用實例使用switch開關(guān)語句比使用if-else條件分支的程序冗長一些。引出此程序目的是要大家掌握在switch開關(guān)語句中嵌套使用其他條件分支語句的方法。比較LOGO3.33.3條件分支選擇結(jié)構(gòu)的綜合
29、應(yīng)用條件分支選擇結(jié)構(gòu)的綜合應(yīng)用n【例例3.123.12】運用多分支結(jié)構(gòu)運用多分支結(jié)構(gòu)(if-else if-else if-elseif-else形式)形式)修改修改例例3-123-12程序。程序。#includeusing namespace std;int main()int mark,flag;cout mark; flag=mark/20;if (mark100|mark0) /用if語句過濾掉不滿足條件的輸入cout 成績輸入錯誤! endl;else if(flag=5)cout 優(yōu)秀! endl;else if(flag=4)cout 優(yōu)秀! endl;else if(flag=
30、3)cout 良好! endl;elsecout 請努力學(xué)習(xí)! endl;return 0;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心通常使用switch開關(guān)語句編寫多分支條件選擇類程序。但是,如果將接受輸入數(shù)值的變量mark和flag的數(shù)據(jù)類型改為實數(shù)類型(如:double),而且,輸入的數(shù)值也為實數(shù),這種情況就不能使用switch開關(guān)語句來實現(xiàn),必須運用if條件分支語句來實現(xiàn)。LOGO3.33.3條件分支選擇結(jié)構(gòu)的綜合應(yīng)用條件分支選擇結(jié)構(gòu)的綜合應(yīng)用n【例例3.133.13】一元二次方程求解問題的程序設(shè)計。一元二次方程求解問題的程序設(shè)計。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心if(a=0) if(a=0) /若若a
31、=0a=0,則不構(gòu)成一元二次方程的情況,則不構(gòu)成一元二次方程的情況 if(b!=0) if(b!=0) / /若若a=0a=0,則剩下的一元一次方程中,則剩下的一元一次方程中b b不能為不能為0 0,否則出錯否則出錯 x=-(double)c/(double)b; x=-(double)c/(double)b; if(x=0) if(x=0) /一元一次方程一元一次方程bx+cbx+c=0=0中中c=0c=0時時 x=-x; x=-x; coutcoutxxendlendl; ; else else coutcoutxxendlendl; ; else else coutcout數(shù)據(jù)輸入錯誤數(shù)
32、據(jù)輸入錯誤!n;!n; # #include include #include #include using namespace std;using namespace std;void main()void main() double double sqrtsqrt(double x);(double x); intint a,b,ca,b,c; ; / /a,b,ca,b,c分為一元二次方程的三個系數(shù)分為一元二次方程的三個系數(shù) double x1,x2,x,e,d,g,f; double x1,x2,x,e,d,g,f; cincinabc; abc; / /輸入三個系數(shù)的值輸入三個系數(shù)的
33、值 d=b d=b* *b-4b-4* *a a* *c; c; /計算根中計算根中deltadelta表達式的值表達式的值LOGO3.33.3條件分支選擇結(jié)構(gòu)的綜合應(yīng)用條件分支選擇結(jié)構(gòu)的綜合應(yīng)用網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心else if(d0) else if(d0) /若若a a不為不為0 0,則構(gòu)成一元二次方程情況,則構(gòu)成一元二次方程情況 d=-d;d=-d;e=e=sqrtsqrt(d);(d);g=-(double)b/(2g=-(double)b/(2* *(double)a);(double)a);f=e/(2f=e/(2* *a);a);if(g!=0)if(g!=0)cout
34、coutx1=g+fx1=g+fi inx2=g+fnx2=g+fi ienendldl; ;elseelse coutcoutftfftfendlendl; ; else if(d=0)else if(d=0) x1=x2=-b/(2 x1=x2=-b/(2* *a);a); coutcoutx1=x2= x1x1=x2= x1endlendl; ; elseelsee=e=sqrtsqrt(d);(d);x1=(-x1=(-b+eb+e)/(2)/(2* *a);a);x2=(-b-e)/(2x2=(-b-e)/(2* *a);a);coutcoutx1= x1tx2= x1= x1tx2
35、= x2x2endlendl; ; LOGO3.33.3條件分支選擇結(jié)構(gòu)的綜合應(yīng)用條件分支選擇結(jié)構(gòu)的綜合應(yīng)用n【例例3.143.14】中國有句俗語叫三天打漁兩天曬網(wǎng)。某人從2011年1月1日起開始三天打漁兩天曬網(wǎng),問這個人在以后的某一天中是打漁還是曬網(wǎng)。網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中心LOGO3.33.3條件分支選擇結(jié)構(gòu)的綜合應(yīng)用條件分支選擇結(jié)構(gòu)的綜合應(yīng)用#include #include using namespace std;int main() int year,month,day; int days=0; int YearOrignal=2000; int TotaldaysDate1=0; int YearDate1=2011; int MonthDate1=1; int DayDate1=1; int nYear1,nYear2; nYear1=YearDate1-YearOrignal; switch(MonthDate1-1) case 12:TotaldaysDate1+=31; case 11:TotaldaysDate1+=30;網(wǎng)絡(luò)與計算中心網(wǎng)絡(luò)與計算中
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 利用主題班會增強班級凝聚力計劃
- 酒店員工薪酬管理總結(jié)
- 紡織行業(yè)生產(chǎn)作業(yè)安全總結(jié)
- 七年級生物下冊 1.1人類的起源和發(fā)展 人教新課標版課件
- 2025年全球及中國智慧康養(yǎng)平臺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球魚塘凈水器行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球插畫設(shè)計行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球繩狀海藻酸鹽敷料行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國后裝載機卡車行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國翻新SSD和HDD行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 《系統(tǒng)解剖學(xué)》期末考試復(fù)習(xí)題庫大全-下(多選題匯總)
- 廈門弘愛醫(yī)院硼中子俘獲治療系統(tǒng)項目環(huán)境影響報告
- 《中國高考評價體系》解讀(化學(xué)學(xué)科)
- 企業(yè)人員測評理論與方法
- 你好法語第七課課件
- 圖形創(chuàng)意(高職藝術(shù)設(shè)計類)PPT完整全套教學(xué)課件
- 環(huán)境空氣顆粒物(PM10、PM2.5)自動監(jiān)測手工比對核查技術(shù)規(guī)范
- 水上水下作業(yè)應(yīng)急預(yù)案
- Jane-Eyre簡愛英文課件
- (小學(xué))人教版一年級下冊數(shù)學(xué)《認識鐘表》課件
- 2022年營口市大學(xué)生??紝U锌荚囌骖}及答案
評論
0/150
提交評論