版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第第5 5章章 選擇結構程序設計選擇結構程序設計5.1關系運算符和關系表達式關系運算符和關系表達式5.2邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式5.3if語句語句5.4switch語句語句5.5程序舉例程序舉例5.1 關系運算符和關系表達式關系運算符和關系表達式n所謂所謂“關系運算關系運算”實際上是實際上是“比較運算比較運算”。n例如,例如,a3是一個關系表達式,大于號是一個關系表達式,大于號()是是一個關系運算符。一個關系運算符。5.1.1 關系運算符及其優(yōu)先次序關系運算符及其優(yōu)先次序nC語言提供語言提供6種關系運算符:種關系運算符:n優(yōu)先級相同優(yōu)先級相同 (高高): (小于小于) =(
2、小于或等于小于或等于) (大于大于) =(大于或等于大于或等于)n優(yōu)先級相同優(yōu)先級相同 (低低): = = (等于等于) !=(不等于不等于)n關系運算符的優(yōu)先級低于算術運算符關系運算符的優(yōu)先級低于算術運算符, 高于賦值高于賦值運算符。見圖運算符。見圖5.1。例如:例如:ncab 等效于等效于 c(ab)nab=c 等效于等效于(ab)=cna=bc等效于等效于a=(bc)圖圖5.15.1.2 關系表達式關系表達式n用用關系運算符關系運算符將將兩個表達式兩個表達式連接起來的式子,連接起來的式子,稱關系表達式。稱關系表達式。n例如,下面都是合法的關系表達式:例如,下面都是合法的關系表達式:ab,
3、abbc,(a=3)(b=5),ab,(ab)(bc)n關系表達式的值關系表達式的值是一個是一個邏輯值邏輯值,即,即“真真”或或“假假”。例如,關系表達式。例如,關系表達式“5=3”的值為的值為“假假”,“5=0”的值為的值為“真真”。nC語言沒有邏輯型數(shù)據(jù),語言沒有邏輯型數(shù)據(jù),以以1代表代表“真真”,以,以“0”代表代表“假假”。例如,。例如,a=3,b=2,c=1,則:,則:n關系表達式關系表達式“ab”n關系表達式關系表達式“(ab)=c”n關系表達式關系表達式“bca”n如果有以下賦值表達式:如果有以下賦值表達式:d=ab 則則d的值為的值為1。nf=abc,則,則f的值為的值為0,因
4、為,因為“”運算符是自左運算符是自左至右的結合方向。至右的結合方向。先計算先計算ab,值為,值為1,1c,錯誤,錯誤,f=0。5.2 邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式n用邏輯運算符將用邏輯運算符將關系表達式或邏輯量關系表達式或邏輯量連接起來連接起來的式子就是邏輯表達式。的式子就是邏輯表達式。5.2.1 邏輯運算符及其優(yōu)先次序邏輯運算符及其優(yōu)先次序nC語言提供三種邏輯運算符:語言提供三種邏輯運算符:n(1) & 邏輯與邏輯與n(2) | 邏輯或邏輯或n(3) ! 邏輯非邏輯非舉例:舉例:na&b 若若a、b都為真,則都為真,則a&b為真。為真。na|b 若若a、b之一為真,則之一為真
5、,則a|b為真。為真。n!a 若若a為真,則為真,則!a為假。為假。n在一個邏輯表達式中如果包含多個邏輯運算符,如在一個邏輯表達式中如果包含多個邏輯運算符,如!a & b|xy & c按以下的按以下的優(yōu)先次序優(yōu)先次序:(1) !(非非)&(與與) |(或或), 即即“!”為三者中最為三者中最高的。高的。(2) 邏輯運算符中的邏輯運算符中的“&”和和“|”低于關系運算符,低于關系運算符,“!”高于高于算術運算符算術運算符。見圖。見圖5.2。n例如:例如:(ab) & (xy) 等價于等價于 ab & xy(a=b)|(x=y) 等價于等價于 a=b|x=y(!a)|(ab) 等價于等價于 !a|
6、ab圖圖5.25.2.2 邏輯表達式邏輯表達式n如前所述,邏輯表達式的值應該是一個邏輯量如前所述,邏輯表達式的值應該是一個邏輯量“真真”或或“假假”。nC語言編譯系統(tǒng)在給出邏輯運算結果時,以數(shù)值語言編譯系統(tǒng)在給出邏輯運算結果時,以數(shù)值1代代表表“真真”,以,以0代表代表“假假”。n但在判斷一個量是否為但在判斷一個量是否為“真真”時,以時,以0代表代表“假假”,以非以非0代表代表“真真”。即將一個非零的數(shù)值認作為。即將一個非零的數(shù)值認作為“真真”。例如:例如:n若若a=4,則,則!a的值為?的值為? n0n若若a=4,b=5,則,則a&b的值為?的值為?n1na、b值同前,值同前,a|b的值為?
7、的值為? !a|b的值為?的值為?n4&0|2的值為?的值為?n表達式表達式“53 & 84-!0”的值為?的值為?n0n實際上,邏輯運算符兩側(cè)的實際上,邏輯運算符兩側(cè)的運算對象運算對象不但可以不但可以是整數(shù),也是整數(shù),也可以是任何類型的數(shù)據(jù)可以是任何類型的數(shù)據(jù)(可以是字(可以是字符型、實型或指針型等)。符型、實型或指針型等)。系統(tǒng)最終以系統(tǒng)最終以0和非和非0來判定它們屬于來判定它們屬于“真真”或或“假假”。n例如:例如:c & d 的值為的值為1(因為因為c和和d的的ascII值都不為值都不為0,按按“真真”處理處理)。n在邏輯表達式的求解中,在邏輯表達式的求解中,并不是所有的邏輯運并不是所
8、有的邏輯運算符都被執(zhí)行算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時,才執(zhí)行該運算符算符才能求出表達式的解時,才執(zhí)行該運算符。例如:例如:n(1) a & b & cn(2) a|b|cn也就是說,對也就是說,對&運算符來說,只有運算符來說,只有a0,才,才繼續(xù)進行右面的運算。對運算符繼續(xù)進行右面的運算。對運算符來說,只有來說,只有a=0,才繼續(xù)進行其右面的運算。因此,當,才繼續(xù)進行其右面的運算。因此,當a=1,b=2,c=3,d=4,m和和n的原值為的原值為1時,如果有下面的邏輯表達式:時,如果有下面的邏輯表達式:(m=ab)&(n=cd)n由于由
9、于“ab”的值為的值為0,因此,因此m=0,而,而“n=cd”不被執(zhí)行,因此不被執(zhí)行,因此n的值不是的值不是0而仍保持原而仍保持原值值1。n熟練掌握熟練掌握C語言的關系運算符和邏輯運算符后,語言的關系運算符和邏輯運算符后,可以巧妙地用一個邏輯表達式來表示一個復雜可以巧妙地用一個邏輯表達式來表示一個復雜的條件。的條件。n例如,要判別某一年例如,要判別某一年year是否閏年。閏年的條件是否閏年。閏年的條件是符合下面二者之一:是符合下面二者之一:n能被能被4整除,但不能被整除,但不能被100整除。整除。n能被能被4整除,又能被整除,又能被400整除。整除??梢杂靡粋€邏輯表達式來表示:可以用一個邏輯表
10、達式來表示:(year4=0&year100!=0)|(year400=0)n可以加一個可以加一個“!”用來判別非閏年:用來判別非閏年:!(year4=0 & year100!=0)|year400=0)n也可以用下面邏輯表達式判別非閏年:也可以用下面邏輯表達式判別非閏年:(year4!=0)|(year100=0 & year400!=0)5.3 if語句語句5.3.1 if語句的三種形式語句的三種形式C語言提供了三種形式的語言提供了三種形式的if語句:語句:1 if(表達式表達式) 語句語句例如:例如:if(xy) printf(d,x);這種這種if語句的執(zhí)行過程見圖語句的執(zhí)行過程見圖5
11、.5(a)。圖圖5.55.52 if(表達式表達式) 語句語句1 else 語句語句2例如:例如:if (xy) printf(“d”,x); else printf(d,y);見圖;見圖5.5(b)。圖圖5.55.53. if(表達式表達式1) 語句語句1 else if(表達式表達式2) 語句語句2 else if(表達式表達式3) 語句語句3 else if(表達式表達式m) 語句語句m else 語句語句n流程圖見圖流程圖見圖5.6。圖圖5.65.6例如:例如:if(number500) cost=0.15;else if(number300) cost=0.10;else if(nu
12、mber100) cost=0.075;else if(number50) cost=0.05;else cost=0;說明:說明:n(1) 三種形式的三種形式的if語句中在語句中在if后面都必須有后面都必須有“表表達式達式”,一般為邏輯表達式或關系表達式。例,一般為邏輯表達式或關系表達式。例如,如,if(a=b & x=y)printf(“a=b,x=y”);n表達式的類型不限于邏輯表達式,可以是任意表達式的類型不限于邏輯表達式,可以是任意的數(shù)值類型的數(shù)值類型(包括整型、實型、字符型、指針型包括整型、實型、字符型、指針型數(shù)據(jù)數(shù)據(jù))。例如,。例如,nif(3) printf(“O.k”);是合
13、法的,執(zhí)行結果輸出;是合法的,執(zhí)行結果輸出“O.k”,因為表達式的值為,因為表達式的值為3,按,按“真真”處理。處理。nif(a)printf(d,a);也是合法的;也是合法的.執(zhí)行結果:輸出執(zhí)行結果:輸出a的的ASCII碼碼97。(3) 在在if和和else后面可以只含一個內(nèi)嵌的操作語句后面可以只含一個內(nèi)嵌的操作語句(如上例如上例),也可以有多個操作語句,此時用花括,也可以有多個操作語句,此時用花括號號“”將幾個語句括起來成為一個復合語句。將幾個語句括起來成為一個復合語句。如:如:if(abc & bca & cab) s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-
14、b)*(s-c); printf(“area=62f”,area);else printf(“It is not a triangle.);n例例5.1輸入兩個實數(shù),按代數(shù)值由小到大的次序輸入兩個實數(shù),按代數(shù)值由小到大的次序輸出這兩個數(shù)。輸出這兩個數(shù)。 程序如下:程序如下:void main() float a,b,t; scanf(“f,f”,&a,&b); if(ab) t=a;a=b;b=t; printf(52f,52f,a,b); 5.3.2 if語句的嵌套語句的嵌套在在if語句中又包含一個或多個語句中又包含一個或多個if語句稱為語句稱為if語語句的嵌套。一般形式如下:句的嵌套。一般
15、形式如下:if()if()語句語句1else語句語句2elseif()語句語句3else語句語句4內(nèi)嵌內(nèi)嵌if內(nèi)嵌內(nèi)嵌ifn要特別注意要特別注意if和和else的配對問題。例如:的配對問題。例如:if(表達式表達式1)if(表達式表達式2)語句語句1;else語句語句2;n其中的其中的else究竟是與哪一個究竟是與哪一個if配對呢配對呢?應該理解為:還是應理解為:應該理解為:還是應理解為: if(表達式表達式1) if(表達式表達式1)if(表達式表達式2) if(表達式表達式2)語句語句1; 語句語句1; else else語句語句2; 語句語句2; n為了避免這種二義性,語言規(guī)定,為了避免
16、這種二義性,語言規(guī)定,else 總是與它前總是與它前面最近的面最近的if配對配對,因此對上述例子應按前一種情況理解。,因此對上述例子應按前一種情況理解。n為實現(xiàn)程序設計者的意圖為實現(xiàn)程序設計者的意圖,可以加花括弧來確定可以加花括弧來確定配對關系。例如配對關系。例如:if() if() 語句語句1 elseif() 語句語句2else 語句語句3例例5.3有一函數(shù)有一函數(shù): -1 (x0)編一程序編一程序,輸入一個輸入一個x值值,輸出輸出y值。值。n算法一:算法一:輸入輸入x若若 x 0 y = 1輸出輸出yn算法二:算法二:輸入輸入x若若 x 0 y = 1輸出輸出y。用流程圖表示,見圖。用流
17、程圖表示,見圖5.7。圖圖5.7有以下幾個程序,判斷哪個是正確的?有以下幾個程序,判斷哪個是正確的?程序程序1:void main()int x,y;scanf(%d,&x);if(x0)y=1; else y=0;程序程序4:y=0;if(x=0) if(x0)y=1;else y=-1;5.3.3 條件運算符條件運算符n條件運算符為:條件運算符為: ? :它是:它是C語言里唯一一個三目運算語言里唯一一個三目運算符,即有三個參與運算的量。符,即有三個參與運算的量。n由條件運算符組成條件表達式的由條件運算符組成條件表達式的一般形式一般形式為:為:表達式表達式1? 表達式表達式2 : 表達式表達
18、式3 n其其求值規(guī)則求值規(guī)則為:先求解表達式為:先求解表達式1,若為非,若為非0(真真)則求解則求解表達式表達式2,此時表達式,此時表達式2的值就作為整個條件表達式的的值就作為整個條件表達式的值。若表達式值。若表達式1的值為的值為0(假假),則求解表達式,則求解表達式3,表達式,表達式3的值就是整個條件表達式的值。的值就是整個條件表達式的值。n條件表達式條件表達式通常用于賦值語句通常用于賦值語句之中。例如:之中。例如: if(ab)max=a; elsemax=b;n上面的上面的if語句可以用下面的條件運算符來處理:語句可以用下面的條件運算符來處理:max=(ab)?a b; 執(zhí)行過程:如執(zhí)行
19、過程:如ab為真,則把為真,則把a賦予賦予max,否則把,否則把b 賦賦予予max。說明:說明:n(1) 條件運算符的條件運算符的優(yōu)先級優(yōu)先級高于賦值運算符,低高于賦值運算符,低于關系運算符和算術運算符。因此于關系運算符和算術運算符。因此max=(ab)?a b 括號可以不要,寫成括號可以不要,寫成max=ab?a bn(2) 條件運算符的條件運算符的結合方向為結合方向為“自右至左自右至左”。如果有以下條件表達式:如果有以下條件表達式:ab?a cd?c d相當于相當于ab?a (cd?c d) 如果如果a=1,b=2,c=3,d=4,則條件表達式,則條件表達式的值等于的值等于4。n(3) 條
20、件表達式不能取代一般的條件表達式不能取代一般的if語句,只有在語句,只有在if語句中語句中內(nèi)嵌的語句為賦值語句內(nèi)嵌的語句為賦值語句(且兩個分支都且兩個分支都給同一個變量賦值給同一個變量賦值)時才能代替時才能代替if語句語句。像下面。像下面的的if語句就無法用一個條件表達式代替。語句就無法用一個條件表達式代替。if(ab)printf(d,a);else printf(d,b);但可以用下面語句代替:但可以用下面語句代替:printf(d,ab?a b);即將條件表達式的值輸出。即將條件表達式的值輸出。n(4) 條件表達式中,表達式條件表達式中,表達式1的類型可以與表達的類型可以與表達式式2和表
21、達式和表達式3的類型不同。的類型不同。n如:如: x? a bx是整型變量,若是整型變量,若x=0,則條件表達式的值為,則條件表達式的值為b。n表達式表達式2和表達式和表達式3的類型也可以不同,此時條的類型也可以不同,此時條件表達式的值的類型為二者中較高的類型。件表達式的值的類型為二者中較高的類型。n如:如:xy?1 15 如果如果xy,則條件表達式的值為,則條件表達式的值為15,若,若xy,值,值應為應為1,由于,由于15是實型,比整型高,因此,將是實型,比整型高,因此,將1轉(zhuǎn)轉(zhuǎn)換成實型值換成實型值1.0。n例例5.4 輸入一個字符,判別它是否大寫字母,輸入一個字符,判別它是否大寫字母,如果
22、是,將它轉(zhuǎn)換成小寫字母;如果不是,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。不轉(zhuǎn)換。然后輸出最后得到的字符。void main()char ch;scanf(%c,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(%c,ch);5.4 switch 語語 句句nif語句只有兩個分支可供選擇,而實際問題中語句只有兩個分支可供選擇,而實際問題中常常需要用到多分支的選擇。例如,學生成績常常需要用到多分支的選擇。例如,學生成績分類分類(90分以上為分以上為a等,等,8089分為分為b等,等,7079分為分為c等等);人口統(tǒng)計分類;人口統(tǒng)計分類(按年
23、按年齡分為老、中、青、少、兒童齡分為老、中、青、少、兒童) n當然這些都可以用嵌套的當然這些都可以用嵌套的if語句來處理,但如語句來處理,但如果分支較多,則嵌套的果分支較多,則嵌套的if語句層數(shù)多,程序冗語句層數(shù)多,程序冗長而且可讀性降低。長而且可讀性降低。n語言提供了用于多分支選擇的語言提供了用于多分支選擇的switch語句語句nswitch語句的語句的一般形式一般形式如下:如下:switch(表達式表達式) case常量表達式常量表達式1: 語句語句1; case常量表達式常量表達式2: 語句語句2; case常量表達式常量表達式n: 語句語句n; default : 語句語句n+1; n
24、其其語義語義是:計算表達式的值。是:計算表達式的值。 并逐個與其后的常量表并逐個與其后的常量表達式值相比較,當表達式的值與某個常量表達式的值相達式值相比較,當表達式的值與某個常量表達式的值相等時,等時, 即執(zhí)行其后的語句,即執(zhí)行其后的語句,然后不再進行判斷,繼續(xù)然后不再進行判斷,繼續(xù)執(zhí)行后面所有執(zhí)行后面所有case后的語句。后的語句。 如表達式的值與所有如表達式的值與所有case后的常量表達式均不相同時,則執(zhí)行后的常量表達式均不相同時,則執(zhí)行default后的后的語句。語句。void main()int a;printf(input integer number: );scanf(%d,&a)
25、;switch (a) case 1:printf(Mondayn);case 2:printf(Tuesdayn);case 3:printf(Wednesdayn);case 4:printf(Thursdayn);case 5:printf(Fridayn);case 6:printf(Saturdayn);case 7:printf(Sundayn);default:printf(errorn); n語言提供了一種語言提供了一種break語句,專用于跳出語句,專用于跳出switch語句。語句。說明:說明:(1) 每一個每一個case的常量表達式的值必須互不相同;的常量表達式的值必須互不
26、相同;(2) 各個各個case和和default的出現(xiàn)次序不影響執(zhí)行結的出現(xiàn)次序不影響執(zhí)行結果。例如,可以先出現(xiàn)果。例如,可以先出現(xiàn)“default:”,再出現(xiàn),再出現(xiàn)“case D:”,然后是,然后是“case a:”,但不推薦。,但不推薦。(3) 執(zhí)行完一個執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)后面的語句后,流程控制轉(zhuǎn)移到下一個移到下一個case繼續(xù)執(zhí)行。繼續(xù)執(zhí)行。(4)在在case后面中雖然包含一個以上執(zhí)行語句,但后面中雖然包含一個以上執(zhí)行語句,但可以不必用花括弧括起來,會自動順序執(zhí)行本可以不必用花括弧括起來,會自動順序執(zhí)行本case后面所有的執(zhí)行語句。當然加上花括弧也可后面所有的執(zhí)
27、行語句。當然加上花括弧也可以。以。(5) 多個多個case可以共用一組執(zhí)行語句,如:可以共用一組執(zhí)行語句,如: case 1:case 2: case 3: printf(Wednesdayn); break; a的值為的值為1、2或或3時都執(zhí)行同一組語句。時都執(zhí)行同一組語句。(6) default子句最好加上。子句最好加上。 5.5 程序舉例程序舉例n例例5.5 寫程序,判斷某一年是否閏年。寫程序,判斷某一年是否閏年。 以變量以變量leap代表是否閏年的信息。若某年為閏代表是否閏年的信息。若某年為閏年,則令年,則令leap=1;若為非閏年,令;若為非閏年,令leap=0。最后判斷最后判斷l(xiāng)e
28、ap是否為是否為1(真真),若是,則輸出,若是,則輸出“閏閏年年”信息。信息。圖圖5.13void main()int year, leap;scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;else leap=0;elseleap=1;elseleap=0;if(leap)printf(%d is ,year);elseprintf(%d is not ,year);printf(a leap year.n);n可以用一個邏輯表達式包含所有的閏年條件,可以用一個邏輯表達式包含所有的閏年條件,將上述將上述if語句用下面
29、的語句用下面的if語句代替:語句代替:if(year%4=0 & year%100!=0) | (year%400=0) leap=1;elseleap=0;n例例5.6 求求ax2bxc=0方程的解。方程的解。例例4.12曾介紹過基本的算法,實際上應該有以下曾介紹過基本的算法,實際上應該有以下幾種可能:幾種可能: a=0,不是二次方程。,不是二次方程。 b2-4ac=0,有兩個相等實根。,有兩個相等實根。 b2-4ac0,有兩個不等實根。,有兩個不等實根。 b2-4ac0,有兩個共軛復根。,有兩個共軛復根。畫出畫出N-S流程圖表示算法。流程圖表示算法。#include #include vo
30、id main()float a,b,c,d,disc,x1,x2,realpart,imagpart;scanf(%f,%f,%f,&a,&b,&c);printf(The equation);if(fabs(a)=1e-6)printf(is not a quadratic);elsedisc=b*b-4*a*c;if(fabs(disc)1e-6)x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);printf(has distinct real roots:%8.4f and %8.4fn,x1,x2);elserealpart=-b/(2*
31、a);imagpart=sqrt(-disc)/(2*a);printf(has comPlex roots n);printf(%8.4f+%8.4fin,realpart,imagpart);printf(%8.4f-%8.4fin,realpart,imagpart);n對于判斷對于判斷b2-4ac是否等于是否等于0時,要注意一個問時,要注意一個問題:由于題:由于disc(即即b2-4ac)是實數(shù),而是實數(shù),而實數(shù)在計實數(shù)在計算和存儲時會有一些微小的誤差算和存儲時會有一些微小的誤差,因此不能直,因此不能直接進行如下判斷:接進行如下判斷:if(disc=0)因為這樣因為這樣可能會出現(xiàn)本來是
32、零的量,由于上述誤差而被可能會出現(xiàn)本來是零的量,由于上述誤差而被判別為不等于零而導致結果錯誤。所以采取的判別為不等于零而導致結果錯誤。所以采取的辦法是辦法是判別判別disc的絕對值的絕對值(fabs(disc)是否小是否小于一個很小的數(shù)于一個很小的數(shù)(例如例如10-6),如果小于此數(shù),如果小于此數(shù),就認為就認為disc=0。程序中以。程序中以realpart代表實部代表實部P,以以imagpart代表虛部代表虛部q,以增加可讀性。,以增加可讀性。n例例5.7 運輸公司對用戶計算運費。路程運輸公司對用戶計算運費。路程(S)越遠,越遠,每公里運費越低。標準如下:每公里運費越低。標準如下: s250
33、km沒有折扣沒有折扣 250S500 2折扣折扣 500S1000 5折扣折扣 1000S2000 8折扣折扣 2000S3000 10折扣折扣 3000S 15折扣折扣n設每公里每噸貨物的基本運費為設每公里每噸貨物的基本運費為P(Price的縮的縮寫寫),貨物重為,貨物重為w(weight的縮寫的縮寫),距離為,距離為S,折扣為折扣為d(discount的縮寫的縮寫),則總運費,則總運費f(freight的縮寫的縮寫)的計算公式為的計算公式為f=P*w*S*(1-d)分析此問題,折扣的變化是有規(guī)律的:分析此問題,折扣的變化是有規(guī)律的:從圖從圖5.15可以看到,折扣的可以看到,折扣的“變化點變
34、化點”都是都是250的倍數(shù)的倍數(shù)(250,500,1000,2000,3000)。利用這一特點,。利用這一特點,可以在橫軸上加一種坐標可以在橫軸上加一種坐標c,c的值為的值為S/250。c代表代表250的倍數(shù)。當?shù)谋稊?shù)。當c1時,表示時,表示S250,無折扣;,無折扣;1c2時,時,表示表示250S=3000) c=12;else c=S/250; switch(c)case 0:d=0;break; case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7: d=8;break;case 8:case 9:cas
35、e 10:case 11:d=10;break; case 12:d=15;break; f=P*w*S*(1-d/100.0);printf(freight=%15.4f,f);運行情況如下:運行情況如下:100,20,300freight= 588000.0000請注意:請注意:c、S是整型變量,因此是整型變量,因此c=S250為整為整數(shù)。當數(shù)。當S3000時,令時,令c=12,而不使,而不使c隨隨S增增大,這是為了在大,這是為了在Switch語句中便于處理,用一語句中便于處理,用一個個case可以處理所有可以處理所有S3000的情況。的情況。if 語句補充語句補充nif語句是語句是C+/C語言中最簡單、最常用的語句,然而很多程序員語言中最簡單、最常用的語句,然而很多程序員用隱含錯誤的方式寫用隱含錯誤的方式寫if語句。語句。n布爾變量與零值比較布爾變量與零值比較n【規(guī)則【規(guī)則1】不可將布爾變量直接與】不可將布爾變量直接與TRUE、FALSE或者或者1、0進行比進行比較。較。 根據(jù)布爾類型的語義,零值為根據(jù)布
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《針灸按摩基礎》課件
- 2020-2021學年遼寧省鐵嶺市六校高一下學期期末聯(lián)考地理試題
- 小學一年級口算題:20以內(nèi)的加減混合
- 小學一年級20以內(nèi)加減法試題口算速算練習題
- 2020年石油知識競賽試題215題及答案
- 三年級上冊25 灰雀
- 《紅樹灣營銷報告》課件
- 《騰訊內(nèi)外環(huán)境分析》課件
- 人的生殖和發(fā)育北師大版-課件
- 《焦點課題模板PU生產(chǎn)模式改善和環(huán)境治理》課件
- 有趣的英語小知識講座
- 2024年擬攻讀博士學位期間研究計劃
- 飛機裝配設計課程設計說明書
- 2023年阿拉善教育系統(tǒng)教師考試真題及答案
- DQE工作指導文檔
- 2023年民兵冬訓總結
- 北京市海淀清華附中2023-2024學年生物高一第一學期期末考試試題含解析
- 單位就業(yè)人員登記表
- 從 2023-上傳通知測試
- 中廣核研究院熱室設施建設項目 環(huán)境影響報告書(建造階段)
- 管網(wǎng)應急預案
評論
0/150
提交評論