C语言入门:实战100题解析(数字组合与奖金计算)

需积分: 0 2 下载量 76 浏览量 更新于2024-12-25 收藏 285KB DOC 举报
本资源是一份针对初学者设计的C语言实例教程,包含了100道基础题目,旨在帮助刚接触C语言的人熟悉编程语法并进行实际操作练习。以下是两道题目及其详细解析: 程序1:三位数的组合 题目要求计算1、2、3、4这四个数字可以组成多少个互不相同且无重复数字的三位数,并列出所有可能的组合。该程序使用了三层嵌套循环,每层循环分别代表百位、十位和个位的选择。通过`if`语句确保每个数字不重复,然后使用`printf`函数输出符合条件的组合。 ```c int main() { int i, j, k; 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); } } } } } ``` 这段代码会输出所有符合条件的三位数组合,共计6种(即3! = 3×2×1种排列方式)。 程序2:奖金计算 第二个问题是关于企业奖金的计算,根据利润的不同区间有不同的提成比例。程序首先从用户那里获取利润值`i`,然后根据预设的边界条件(10万元、20万元、40万元、60万元和100万元)进行分段计费。使用`if-else if`结构判断利润范围,计算不同区间的提成金额,并累加得到总奖金`bonus`。 ```c long int i; int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; scanf("%ld", &i); bonus1 = 100000 * 0.1; bonus2 = bonus1 + 100000 * 0.75; bonus4 = bonus2 + 200000 * 0.5; bonus6 = bonus4 + 200000 * 0.3; bonus10 = bonus6 + 400000 * 0.15; 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 { bonus = bonus10 + (i - 600000) * 0.01; // 提成1% } ``` 这个程序可以帮助学习者理解如何根据不同的条件执行不同分支的逻辑,以及如何处理浮点计算和整数转换。 通过这两个例子,学习者能够掌握C语言的基本语法结构,如控制结构(循环和条件判断)、数据类型以及输入输出等,这对于巩固C语言基础至关重要。