1. 程式人生 > >C語言實戰105例子——例項6用if...else語句解決獎金髮放問題

C語言實戰105例子——例項6用if...else語句解決獎金髮放問題

題目:

在這裡插入圖片描述

例項解析

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;
}