C語言實戰105例子——例項6用if...else語句解決獎金髮放問題
阿新 • • 發佈:2018-12-17
題目:
例項解析
1.if語句的三種基本形式
(1) if (表示式){語句} 表示式的值為真時,則執行後面花括號的語句。(當只有一條要執行的語句時,不需要加花括號。)
(2) if (表示式){語 句 l} else {語句 2} 表示式的值為真時,則執行後面花括號裡的語句1 , 否 則, 執 行 else後面花括號裡的語句 2。
(3) if (表 達 式 1) {語 句 l} else if (表示式2) {語 句 2} else{語 句 3} 表 達 式 1 的值為真時,執行後面花括號裡的語句1, 程式跳出i f 語句部分,否則,在當表達 式 2 的值為真時,執行後面花括號裡的語句2 , 程式跳出i f 語句部分,只有當表示式1和表達 式 2 都不為真時,執行語句3。
2.巢狀if語句 將上述三種基本形式的語句部分替換為另一種基本形式的 if 語句
1)只在i f 語子句中巢狀i f 語句,形式如下:
2)只在else子句中巢狀i f 語句,形式如下:
3)不斷在else子句中巢狀if 語句就形成多層巢狀,形式如下
注意:注意i f 與 else匹配的問題 原則是:else總是與前面最近的未匹配的i f 語句相配對 特別強調的是,為 了 避免 if與 else的匹配錯誤,要使用花括號
/*企業發放的獎金根據利潤提成,發放規則如下: 利潤(I)低於或等於10萬元時,獎金可提10%; 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提成7.5%; 20萬到40萬之間時,高於20萬元的部分,可提成5%; 40萬到60萬之間時高於40萬元的部分,可提成3%; 60萬到100萬之間時,高於60萬元的部分,可提成1.5%, 高於100萬元時,超過100萬元的部分按1%提成。 從鍵盤輸入當月利潤I,求應發放獎金總數?*/ #include<stdio.h> #include<stdlib.h> int main() { long int gain; int prize1,prize2,prize4,prize6,prize10,prize = 0; puts("*************************************"); puts("* The program will solve *"); puts("* the problem of prize distribution *"); puts("*************************************"); puts("please input the num of gain:"); scanf("%1d",&gain); //它這樣的寫法很好,很清晰 prize1=100000*0.1; prize2=prize1+100000*0.075; prize4=prize2+200000*0.05; prize6=prize4+200000*0.03; prize10=prize6+400000*0.015; if(gain<=100000) prize=gain*0.1; else if(gain<=200000) prize=prize1+(gain-100000)*0.075; else if(gain<=400000) prize=prize2+(gain-200000)*0.05; else if(gain<=600000) prize=prize4+(gain-400000)*0.03; else if(gain<=1000000) prize=prize6+(gain-600000)*0.015; else prize=prize10+(gain-1000000)*0.01; printf("The prize is :%d\n",prize); //getch(); system("pause"); return 0; }