企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000


企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7. 5%;200000<I≤400000时,低于200000元的部分仍按上述办法提成(下同)。高于200000元的部分按5%提成;400000<<I≤600000元时,高于400000元的部分按3%提成;600000<1≤1000000时,高于600000元的部分按1.5%提成;I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。要求:(1) 使用if语句编写程序。(2) 使用switch语句编写程序。

(1) 使用if语句编写程序。

解题思路: 先将每一档的最大奖金算出来,在某一个区间时,则那小于这一档的奖金加上多出部分的奖金即可,例如:

先列出100000档的奖金是10000,则180000就是10000 + (180000-100000) * 0.075;

列出200000档的奖金是第一档加上多出100000部分的7.5%得到17500,则300000就是17500 + (300000-200000)*0.05;

答案:

#include <stdio.h>
int main()
{
	double I, salary = 0;
	printf("enter performance:");
	scanf_s("%lf", &I);
	if (I < 0) {
		printf("请输入一个正数\n");
		system("pause");
		return -1;
	}
	double salary1 = 100000 * 0.1;//10万的奖金
	double salary2 = (200000 - 100000) * 0.075 + salary1;//20万的奖金
	double salary3 = (400000 - 200000) * 0.05 + salary2;//40万的奖金
	double salary4 = (600000 - 400000) * 0.03 + salary3;//60万的奖金
	double salary5 = (1000000 - 600000) * 0.015 + salary4;//100万的奖金
	if (I <= 100000) {
		salary = I * 0.1;//小于100000按10%提成
	}else if (I > 100000 && I <= 200000) {
		salary = salary1 + (I - 100000) * 0.075;//多出10万的按比例计算,加上10w的奖金
	}else if (I > 200000 && I <= 400000) {
		salary = salary2 + (I - 200000) * 0.05;//多出20万的按比例计算,加上20w的奖金
	}else if (I > 400000 && I <= 600000) {
		salary = salary3 + (I - 400000) * 0.03;//多出40万的按比例计算,加上40w的奖金
	}else if (I > 600000 && I <= 1000000) {
		salary = salary4 + (I - 600000) * 0.015;//多出60万的按比例计算,加上60w的奖金
	}else if (I > 1000000){
		salary = salary5 + (I - 1000000) * 0.01;//多出100万的按比例计算,加上100w的奖金
	}
	printf("salary:%f\n", salary);
	system("pause");
	return 0;
}

企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分

(2) 使用switch语句编写程序。

解题思路: 与第一题思路没有太大差别,区别在于switch语句的case子句中需要是一个常量整数,并且switch中若子句中没有break将循序向下执行,直到遇到break才会跳出switch语句,如果这时候将利润除以10w,则得到09的数字,其中0表示小于10w,1表示介于1020w,2、3表示介于2040w,4、5表示介于4060w,6、7、8、9表示介于60~100w,否则就是大于100w

答案:

#include <stdio.h>
int main()
{
	double I, salary = 0;
	printf("enter performance:");
	scanf_s("%lf", &I);
	if (I < 0) {
		printf("请输入一个正数\n");
		system("pause");
		return -1;
	}
	double salary1 = 100000 * 0.1;//大于100000时0~100000的奖金
	double salary2 = (200000 - 100000) * 0.075 + salary1;//大于200000时0~20万的奖金
	double salary3 = (400000 - 200000) * 0.05 + salary2;//大于400000时0~40万的奖金
	double salary4 = (600000 - 400000) * 0.03 + salary3;//大于600000时0~60万的奖金
	double salary5 = (1000000 - 600000) * 0.015 + salary4;//大于1000000时0~100万的奖金
	int grade = I / 100000;
	switch(grade) {
		case 0:
			salary = I * 0.1; break;
		case 1:
			salary = salary1 + (I - 100000) * 0.075; break;
		case 2://会顺序执行到下一个break处
		case 3:
			salary = salary2 + (I - 200000) * 0.05; break;
		case 4:
		case 5:
			salary = salary3 + (I - 400000) * 0.03; break;
		case 6:
		case 7:
		case 8:
		case 9:
			salary = salary4 + (I - 600000) * 0.015; break;
		default:
			salary = salary5 + (I - 1000000) * 0.01; break;
	}
	printf("salary:%f\n", salary);
	system("pause");
	return 0;
}

企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;利润高于100000元,低于200000元(100000 题目:企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成 3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高    于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提    成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于    40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于    100万元时,超过 python之(12)企业发放的奖金根据利润提成 C语言经典例题:企业发放的奖金根据利润提成 【Python3练习题 002】企业发放的奖金根据利润提成 C语言 · 企业奖金发放 1元、5元、10元、20元、50元、100元六种面额,输入N,计算有多少种组合可以等于N 快2021年了,现在办理什么手机卡套餐好?【低于50元~~】 vs2012中编译时出现程序集所使用的版本高于所引用的版本
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM