C语言企业发放奖金根据利润提成问题解答

  新手C语言入门,必定会接触到选择结构,而选择结构,任课老师也必定讲过if和switch两种选择。

  而谭浩强教授所做的课本课后习题中,企业发放奖金根据利润提成也是选择结构中的经典习题,在这里,我为大家带来这两种方法的具体做法,可能会有不足,欢迎大家能够指出来。

      首先是由switch语句进行的编写,因为小编喜欢用switch,所以放在了前面。

int main()                             //头文件需自己补充,我这里只给出源文件的代码
{
	int a,b;
	float  sum;
	printf("请输入当月利润:");       //加入此行便于运行时能够直观体现
	scanf("%d", &a);
	b = a / 100000;
	switch (b)                       //switch语句编写,下方if语句编写
	{  
	case 0:
		printf("奖金总数=%.2f", sum = a * 0.1);
		break;
	case 1:
		printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
		break;
	case 2:
	case 3:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
		break;
	case 4:
	case 5:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
		break;
	case 6:
	case 7:
	case 8:
	case 9:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015); 
		break;              //以上时前五种大的分类
	default:
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);                   
		break;             //这是最后的一大分类,需要明确区分
	
	}
	return 0;
}

接下来是if语句的编写,如有错处,欢迎指出,小编定会及时修改。

int main()             //仍旧没有头文件,需自己补充
{
	int a;    
	float b, sum;
	printf("请输入当月利润");
	scanf("%d", &a);
	b = a / 100000;
	if (b >= 0 && b <= 1)             //if语句输出
		printf("奖金总数=%.2f", sum = a * 0.1);
	else if (b > 1 && b <= 2)
		printf("奖金总数=%.2f", sum = 10000 + (a - 100000) * 0.075);
	else if (b > 2 && b <= 4)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + (a - 200000) * 0.05);
	else if (b > 4 && b <= 6)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + (a - 400000) * 0.03);
	else if (b > 6 && b <= 10)
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + (a - 600000) * 0.015);
	else               //以上是五种能给出具体范围的,下方最后一个是1000000元以上的
		printf("奖金总数=%.2f", sum = 10000 + 7500 + 10000 + 6000 + 6000 + (a - 1000000) * 0.01);
	return 0;
}

  以上便是此问题中的两种基本解决方法。

  重要的事情说三遍:

如有不足请指出,定及时改正。

如有不足请指出,定及时改正。

如有不足请指出,定及时改正。

  • 21
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
好的,这个问题比较具体。您需要计算的是企业利润奖金提成,这里有两种方式: 方式一:固定利润提成 如果您的企业利润固定,比如说利润为10000元以下,提成比例为10%;利润为10000到20000元之间,提成比例为15%;利润为20000元以上,提成比例为20%;那么您可以按照以下的方法计算奖金: ``` #include <stdio.h> int main() { double profit, bonus; printf("请输入企业利润:\n"); scanf("%lf", &profit); if(profit <= 10000) { bonus = profit * 0.1; } else if(profit <= 20000) { bonus = 10000 * 0.1 + (profit - 10000) * 0.15; } else { bonus = 10000 * 0.1 + 10000 * 0.15 + (profit - 20000) * 0.2; } printf("企业发放奖金为:%.2lf元\n", bonus); return 0; } ``` 您只需要输入企业利润,程序就会按照上述方式计算并输出奖金。 方式二:动态利润提成 如果您的企业利润不是固定的,而是根据不同的区间,提成比例也不同,那么您需要先确定各个区间的利润上下限和提成比例,然后再按照以下的方法计算奖金: ``` #include <stdio.h> int main() { double profit, bonus = 0; double ranges[] = {1000000, 600000, 400000, 200000, 100000, 0}; double rates[] = {0.01, 0.015, 0.03, 0.05, 0.075, 0.1}; printf("请输入企业利润:\n"); scanf("%lf", &profit); for(int i = 0; i < 6; i++) { if(profit > ranges[i]) { bonus += (profit - ranges[i]) * rates[i]; profit = ranges[i]; } } printf("企业发放奖金为:%.2lf元\n", bonus); return 0; } ``` 这个程序中,我们将各个利润区间和其对应的提成比例存在了两个数组中,然后通过循环遍历这个数组,计算奖金。如果企业利润大于某个区间的上限,就将这个区间已经计算过的利润企业利润中减去,然后按照这个区间的提成比例计算奖金。最后的 bonus 就是总奖金。 以上两种方式,您可以根据自己的需求选择一种编写。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值