C语言编程:使用三重循环生成无重复三位数

4星 · 超过85%的资源 需积分: 12 43 下载量 86 浏览量 更新于2024-07-27 4 收藏 368KB PDF 举报
"《C经典100例》是一本以C语言编写的编程实践教程,其中包含了多个经典的编程示例。本文档介绍了两个具体的程序实例。第一个程序是计算使用1、2、3、4这四个数字能组成的互不相同且无重复数字的三位数的个数。第二个程序涉及奖金计算,根据利润分成不同段位,计算不同利润区间对应的奖金总额。" 第一个程序主要展示了如何使用C语言进行排列组合的计算。通过三层嵌套循环(i、j、k)遍历所有可能的三位数组合,并使用if语句确保每一轮循环中的三个数字互不相同。这个程序的核心在于理解数组的遍历以及逻辑判断的应用,同时体现了C语言在控制流程和条件判断上的基本用法。 ```c main() { int i, j, k; printf("\n"); 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); } } ``` 第二个程序是关于奖金计算,涉及到利润区间和不同比例的奖金提成。这个程序运用了if-else语句对不同利润范围进行判断,然后计算相应的奖金。需要注意的是,对于长整型变量的使用,确保能够存储大额奖金。程序如下: ```c main() { 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) // 其余奖金计算部分... } ``` 这两个程序不仅涵盖了C语言的基本语法,如变量声明、循环结构、条件判断、输入输出,还涉及了逻辑思维和实际问题的算法设计。通过这样的实例,学习者可以加深对C语言的理解,并逐步提高编程能力。