C++编程练习:100题解与算法解析

需积分: 33 1 下载量 67 浏览量 更新于2024-09-12 收藏 58KB TXT 举报
"C++练习题100题" 这两道题目是C++编程中的经典练习,旨在提升编程技能和理解算法。第一题是一道组合问题,涉及到三元组的组合生成,而第二题是一个简单的计算奖金比例的问题,涉及到条件判断和百分比计算。 **第一题解析:** 该题目要求打印出所有不重复的1到4之间的整数三元组(i, j, k),即(i != j && i != k && j != k)。这可以通过三层嵌套循环实现,外层循环变量i从1到4,中间层循环变量j从1到4,内层循环变量k从1到4。在每次循环中,通过条件判断检查当前的i, j, k是否满足不重复的要求,如果满足则打印出这个三元组。 代码实现: ```cpp #include <stdio.h> int main() { int i, j, k; printf("\n"); for (i = 1; i < 5; i++) { // 外层循环,i从1到4 for (j = 1; j < 5; j++) { // 中间层循环,j从1到4 for (k = 1; k < 5; k++) { // 内层循环,k从1到4 if (i != k && i != j && j != k) { // 检查不重复性 printf("%d,%d,%d\n", i, j, k); // 打印满足条件的三元组 } } } } return 0; } ``` **第二题解析:** 这是一个关于计算奖金比例的程序。根据描述,输入一个整数i表示销售额,根据不同的销售区间计算对应的奖金比例。每个区间都有特定的奖金百分比,然后根据销售额所在的区间计算总奖金。 代码实现: ```cpp #include <stdio.h> int main() { long int i; int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; scanf("%ld", &i); // 输入销售额 bonus1 = 100000 * 0.1; // 10%奖金计算 bonus2 = bonus1 + 100000 * 0.75; // 20%奖金计算 bonus4 = bonus2 + 200000 * 0.5; // 40%奖金计算 bonus6 = bonus4 + 200000 * 0.3; // 60%奖金计算 bonus10 = bonus6 + 400000 * 0.15; // 100%奖金计算 if (i <= 100000) bonus = i * 0.1; // 销售额10万及以下 else if (i <= 200000) bonus = bonus1 + (i - 100000) * 0.075; // 销售额10万到20万 else if (i <= 400000) bonus = bonus2 + (i - 200000) * 0.05; // 销售额20万到40万 else if (i <= 600000) bonus = bonus4 + (i - 400000) * 0.03; // 销售额40万到60万 else if (i <= 1000000) bonus = bonus6 + (i - 600000) * 0.015; // 销售额60万到100万 else bonus = bonus10 + (i - 1000000) * 0.01; // 销售额100万以上 printf("bonus=%ld", bonus); // 打印奖金 return 0; } ``` 这两道题目涵盖了基本的循环、条件判断和简单的数学计算,是C++初学者很好的练习素材。通过这样的练习,可以提升逻辑思维能力和编程技巧。