C语言编程:利润提成计算程序

需积分: 9 1 下载量 171 浏览量 更新于2024-07-26 收藏 127KB DOC 举报
"C语言设计 第三版 课后答案,包含使用if语句和switch语句计算企业利润提成奖金的程序示例" 在《C语言设计》第三版的课后习题中,有一道题目涉及到企业利润提成奖金的计算。这道题目要求根据利润的数额来确定奖金的百分比,并且对不同的利润区间有不同的提成规则。具体来说,如果利润I低于或等于10万元,提成为10%;当利润在10万元至20万元之间时,前10万元提成10%,超出部分提成7.5%;以此类推,直至利润超过100万元,超出部分提成为1%。 为了实现这个计算过程,有两种常见的C语言编程方法:使用if语句和使用switch语句。 1. 使用if语句的程序设计: ```c #include<stdio.h> int main() { long i; float bonus, bon1, bon2, bon4, bon6, bon10; // 初始化不同利润区间的奖金 bon1 = 100000 * 0.1; // 利润为10万元时的奖金 bon2 = bon1 + 100000 * 0.075; // 利润为20万元时的奖金 bon4 = bon2 + 200000 * 0.05; // 利润为40万元时的奖金 bon6 = bon4 + 200000 * 0.03; // 利润为60万元时的奖金 bon10 = bon6 + 400000 * 0.015; // 利润为100万元时的奖金 printf("请输入利润i:"); scanf("%ld", &i); if (i <= 100000) bonus = i * 0.1; // 利润在10万元以内按0.1提成奖金 else if (i <= 200000) bonus = bon1 + (i - 100000) * 0.075; // 利润在10万至20万元时的奖金 else if (i <= 400000) bonus = bon2 + (i - 200000) * 0.05; // 利润在20万至40万元时的奖金 else if (i <= 600000) bonus = bon4 + (i - 400000) * 0.03; // 利润在40万至60万元时的奖金 else if (i <= 1000000) bonus = bon6 + (i - 600000) * 0.015; // 利润在60万至100万元时的奖金 else bonus = bon10 + (i - 1000000) * 0.01; // 利润超过100万元的部分按1%提成 printf("应发放的奖金总数为:%.2f\n", bonus); return 0; } ``` 在这个if语句的程序中,首先定义了不同利润区间的基准奖金,并通过逐层判断来确定实际奖金数额。这种方法清晰地展示了每个利润区间的计算逻辑。 2. 使用switch语句的程序设计: switch语句通常用于简化多分支选择的情况,但在这个问题中,由于奖金计算涉及连续的利润区间,使用switch可能不是最直观的选择。不过,仍然可以构造一个switch语句来解决这个问题,但可能需要嵌套if语句来处理每个利润区间的细节。 这道题目旨在考察学生对条件语句的理解和运用,以及如何在C语言中进行复杂的计算逻辑设计。通过这两个示例程序,学生可以学习到如何根据给定的规则来编写程序,处理不同条件下的计算问题。