C++编程:构建不同三位数与奖金计算算法

下载需积分: 16 | DOC格式 | 116KB | 更新于2024-07-28 | 73 浏览量 | 3 下载量 举报
收藏
"C++编程练习题目及解析" 本文将探讨两个C++编程实例,它们分别涉及不同的问题解决策略。第一个程序是关于排列组合的,第二个程序涉及根据利润计算奖金的算法。 ### 程序1 - 排列组合计算 **问题描述:** 题目要求计算由数字1、2、3、4组成的互不相同且无重复数字的三位数的个数。这涉及到对这三个位置(百位、十位、个位)进行填充,每个位置都可以选择1、2、3、4四个数字中的任意一个,但不能重复。 **解决方案:** 该程序使用三重循环来遍历所有可能的组合。外层循环控制百位,中间层循环控制十位,内层循环控制个位。在每次循环中,通过检查`i`、`j`、`k`是否互不相同来确保没有重复数字。如果满足条件,则打印出当前的三位数。 ```cpp for(i=1; i<5; i++) // 百位 for(j=1; j<5; j++) // 十位 for(k=1; k<5; k++) // 个位 if(i!=k && i!=j && j!=k) // 检查三个数字互不相同 printf("%d,%d,%d\n", i, j, k); ``` 这个程序会输出所有可能的组合,即4*3*2 = 24个不同的三位数。 ### 程序2 - 利润提成计算 **问题描述:** 根据利润范围计算奖金,利润分为多个区间,每个区间有不同的提成比例。用户输入当月利润`I`,程序应计算并输出相应的奖金总额。 **解决方案:** 首先定义各个利润区间的奖金基数,然后通过一系列的条件语句来判断利润所在的区间,并计算对应部分的奖金。最后,将所有部分的奖金累加得到总奖金。 ```cpp long int i; int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; scanf("%ld", &i); // 读取利润 bonus1 = 100000 * 0.1; // 提成比例10% bonus2 = bonus1 + 100000 * 0.75; // 提成比例7.5% bonus4 = bonus2 + 200000 * 0.5; // 提成比例5% bonus6 = bonus4 + 200000 * 0.3; // 提成比例3% bonus10 = bonus6 + 400000 * 0.15; // 提成比例1.5% if (i <= 100000) bonus = i * 0.1; else if (i <= 200000) bonus = bonus1 + (i - 100000) * 0.075; else if (i <= 400000) bonus = bonus2 + (i - 200000) * 0.05; else if (i <= 600000) bonus = bonus4 + (i - 400000) * 0.03; else // 超过100万的部分按1%提成 bonus = bonus10 + (i - 1000000) * 0.01; ``` 这段代码根据输入的利润值`I`,逐级检查利润所在的区间,并计算出对应的奖金。 这两个程序展示了C++在处理排列组合和数学计算问题上的灵活性。在实际编程中,这种逻辑思维和问题拆解能力是非常重要的。通过编写这样的程序,开发者可以提高逻辑推理能力和算法设计技巧。

相关推荐

filetype
C++程序设计(谭浩强)例题和习题答案 习 题 说 明 在这部分中提供了由谭浩强编著的《C++程序设计》(清华大学出版社出版)一书中各章的全部习题的参考解答。 为了帮助读者更好地理解程序,我们在有的程序中加了必要的注释。对有的题目,我们提供了几种不同的解法和程序,供读者比较分析。 习题解答程序按章设立文件夹(子目录),如文件夹xt1中包含的是第1章全部习题的解答程序。程序的文件名以xt开头,与例题号一一对应,如xt7-3.cpp是第7章第3题的解答程序。对于给出了两种或多种解答程序的,在文件名中加了顺序号,如xt6-11-1.cpp是第6章第11题的第1种解答程序,xt6-11-2.cpp是第6章第11题的第2种解答程序。 我们提供的只是参考答案,并不一定是惟一正确的答案,甚至不一定是最好的答案,读者完全可以举一反三,编写出更好的程序。 这些程序只供读者参考,未经作者同意,请勿自行印刷或出版。 例 题 说 明 在这部分中提供了由谭浩强编著的《C++程序设计》(清华大学出版社出版)一书中各章的例题程序,以方便教师进行教学,也便于读者上机运行这些程序以及在此基础上修改和调试程序。 程序按章设立文件夹(子目录),如文件夹c12中包含的是第12章全部例题的程序。程序的文件名以c开头,与例题号一一对应,如c5-7.cpp是第5章例5.7的程序。对于教材中同一例题中包含两个或多个程序的,在文件名中加了顺序号,如c10-4-1.cpp是例10.4的第1个程序,c10-4-2.cpp是例10.4的第2个程序。 教材中所有的程序都是符合C++标准规定的,在GCC中能通过,但有的程序在Visual C++ 6.0中通不过。如果在Visual C++ 6.0环境下运行程序,需要对程序作一些修改。例如,如果程序c10-4-1.cpp在Visual C++ 6.0环境下编译,第1行应改为“include <iostream.h>”,并将第2行“using namespace std;”取消即可顺利通过编译,其他类似。我们在教材的例题程序中还提供了能在Visual C++ 6.0环境下运行的程序,在文件名中加了"(VC)"字样,如c10-4-2(VC) 表示它是对程序c10-4-2修改后能用于Visual C++ 6.0环境的程序。
693 浏览量