1. 程式人生 > >C程式12 計算獎金

C程式12 計算獎金

程式12 計算獎金

題目:企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?

自己理解:採用case語句,分別計算每一個利潤範圍獲得的具體獎金。其中2種計算方法:

  1. 累加計算,如程式碼1,sum=sum(前面範圍獎金的總和)+當前超出範圍獎金。
  2. 最基礎的加法,列出每個範圍應得的獎金,之後相加,
    兩種都差不多,第2種不容易出錯,比較直白。

程式碼1

#include <stdio.h>
int main()
{
		int z,i;
		float sum=0;
		printf("輸入利潤:");
		scanf("%d",&i);
		if(i<=100000)
		z=1;
		else if(i<=200000&&i>100000)
		z=2;
		else if(i<=400000&&i>200000)
		z=3;
		else if(i<=600000&&i>400000)
		z=4;
		else if(i<=1000000&i>600000)
		z=5;
		else if(i>1000000)
		z=6;
		switch(z)
		{
		case 6:
			sum+=(i-1000000)*0.01;
			i=1000000; 
		case 5:
			sum+=(i-600000)*0.015;
			i=600000;
		case 4:
			sum+=(i-400000)*0.03;
			i=400000;
		case 3:
			sum+=(i-200000)*0.05;
			i=200000;
		case 2:
			sum+=(i-100000)*0.075;
			i=100000;
		case 1:
		    sum+=i*0.1;
		break;
		}
		printf("Bonus=%lf",sum);
		return 0;
}

執行結果

在這裡插入圖片描述

程式碼2

#include<stdio.h>
int main(void)
{
	double I = 0, Bonus = 0;
	printf("Please input Profit I= ");
	scanf("%lf", &I);

	if(I <= 0)
	{
	    printf("not bonus!\n");
	    return 0;
	}
	I /= 10000;
	
	switch((int)(I/10))
	{
	case 0:
	        Bonus = I * 0.1;
			break;
	case 1:
			Bonus = 10 * 0.1 + (I - 10) * 0.075;
			break;
	case 2:
	case 3:
			Bonus = 10 * 0.1 + 10 * 0.075 + (I - 20) * 0.05;
			break;
	case 4:
	case 5:
			Bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (I - 40) * 0.03;
			break;
	case 6:
	case 7:
	case 8:
	case 9:
			Bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (I - 60) * 0.015;
			break;
	default:
        	Bonus = 10 * 0.1 + 10 * 0.075 + 20 * 0.06 + 20 * 0.03 + 40 * 0.015 + (I - 100) * 0.01;
	break;
	}
	Bonus = Bonus * 10000;//為方便計算前面,化成萬元,現在要換算回來,乘10000
	printf("The Bonus = %lf\n", Bonus);
	return 0;
} 

執行結果

在這裡插入圖片描述

驗證
如果利潤65萬元,則獎金
=1000000.1+1000000.075+2000000.05+2000000.03+50000*0.015
=10000+7500+10000+6000+750
=34250

在這裡插入圖片描述