作者:天天火火红红 | 来源:互联网 | 2024-12-10 12:48
在C语言编程中,有时需要根据输入值的不同区间来执行不同的操作,例如根据公司的利润来计算员工的奖金。下面的代码示例展示了如何使用switch-case结构来实现这一功能:
#include
int main() {
int profit, tier, bonusA, bonusB, bonusC, bonusD, bonusE, bonusF;
printf("请输入公司利润(单位:元):");
scanf("%d", &profit);
bOnusA= profit * 0.10; // 利润的10%
bOnusB= (profit > 100000) ? (profit - 100000) * 0.075 : 0;
bOnusC= (profit > 200000) ? (profit - 200000) * 0.05 : 0;
bOnusD= (profit > 400000) ? (profit - 400000) * 0.03 : 0;
bOnusE= (profit > 600000) ? (profit - 600000) * 0.015 : 0;
bOnusF= (profit > 1000000) ? (profit - 1000000) * 0.01 : 0;
tier = (profit - 1) / 100000;
switch(tier) {
case 0:
printf("奖金总额:%d元\n", bonusA);
break;
case 1:
printf("奖金总额:%d元\n", bonusA + bonusB);
break;
case 2: case 3:
printf("奖金总额:%d元\n", bonusA + bonusB + bonusC);
break;
case 4: case 5:
printf("奖金总额:%d元\n", bonusA + bonusB + bonusC + bonusD);
break;
case 6: case 7: case 8: case 9:
printf("奖金总额:%d元\n", bonusA + bonusB + bonusC + bonusD + bonusE);
break;
default:
printf("奖金总额:%d元\n", bonusA + bonusB + bonusC + bonusD + bonusE + bonusF);
break;
}
return 0;
}
在这个例子中,我们首先定义了一个整型变量tier
,用于存储利润对应的级别。通过计算(profit - 1) / 100000
,我们可以确保即使利润恰好位于区间的边界上,也能正确地落入较低的奖金计算区间。接着,使用switch-case语句根据不同级别的利润计算相应的奖金总额,并输出结果。
值得注意的是,switch-case结构只能处理整型或字符类型的条件判断,不能直接处理数值范围。因此,通过上述方法将利润转换为一个特定的级别,使得switch-case能够有效地应用于这种场景。