C语言经典例题解析:从入门到进阶

需积分: 10 18 下载量 86 浏览量 更新于2024-12-01 收藏 60KB TXT 举报
"C语言经典例题100例,适合初学者,涵盖基础到进阶,通过编程实例帮助理解C语言的核心概念和技术。" 在C语言的学习过程中,掌握一些经典的例题对于初学者来说至关重要。这些例题可以帮助我们更好地理解和运用C语言的基本语法、逻辑控制、函数操作以及算法设计。以下将对提供的两个例题进行详细解析: 例题1: 输出不相邻的三个整数组合 这个例题旨在练习嵌套循环和条件判断。程序的目标是打印出1到4之间的所有不相邻的整数组合。例如,(1,2,3)、(1,3,4)等都是符合条件的组合。代码实现如下: ```c #include <stdio.h> int main() { int i, j, k; // 外层循环控制第一个数字 for(i = 1; i < 5; i++) { // 中间层循环控制第二个数字,需跳过与第一个数字相同的值 for(j = 1; j < 5; j++) { if(i != j) { // 内层循环控制第三个数字,同时需要跳过与前两个数字相同的值 for(k = 1; k < 5; k++) { if(i != k && j != k) { printf("%d,%d,%d\n", i, j, k); } } } } } return 0; } ``` 例题2: 计算薪资奖金 此例题涉及到条件分支和计算。题目要求根据输入的薪资范围,计算对应的奖金比例。具体规则如下: - 10万以下:10% - 10万至20万:10%基础上增加7.5% - 20万至40万:20%基础上增加5% - 40万至60万:40%基础上增加3% - 60万至100万:60%基础上增加1.5% - 100万以上:100%基础上增加1% 代码实现如下: ```c #include <stdio.h> int main() { long int salary; int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; // 输入薪资 scanf("%ld", &salary); // 初始化不同薪资范围的奖金 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(salary <= 100000) bonus = salary * 0.1; else if(salary <= 200000) bonus = bonus1 + (salary - 100000) * 0.075; else if(salary <= 400000) bonus = bonus2 + (salary - 200000) * 0.05; else if(salary <= 600000) bonus = bonus4 + (salary - 400000) * 0.03; else if(salary <= 1000000) bonus = bonus6 + (salary - 600000) * 0.015; else bonus = bonus10 + (salary - 1000000) * 0.01; // 打印奖金 printf("bonus=%d", bonus); return 0; } ``` 这两个例题分别展示了C语言中的逻辑控制结构和实际问题求解能力,对于初学者来说是非常好的实践素材。通过不断练习和理解这样的例子,可以逐步提升编程技能,为后续更复杂的编程挑战打下坚实基础。