超经典c语言小程序 100例
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 【程序 1】的知识点: 1. **循环结构**:程序使用了三层嵌套循环(for loop)来遍历所有可能的三位数组合。每层循环分别代表百位、十位和个位,循环变量i、j、k分别对应这三个位置。 2. **条件判断**:在循环内部,通过if语句确保生成的三位数中,每个数字都不相同。通过条件`i!=k&&i!=j&&j!=k`来检查这个条件。 3. **数组与序列生成**:虽然这里没有明确使用数组,但可以理解为用循环模拟了生成数字序列的过程,即遍历所有可能的三位数组合。 4. **输出格式化**:使用`printf`函数输出结果,用逗号和换行符分隔各个数字,使得输出更易读。 【程序 2】的知识点: 1. **分支结构**:程序通过一系列的if...else if...else语句来判断不同利润区间对应的奖金计算方式。这种方式可以处理多个条件并进行不同的操作。 2. **长整型数据类型**:因为奖金数额可能很大,所以使用了`long int`类型的变量`bonus`来存储,确保不会因数值过大导致精度丢失。 3. **浮点数运算与百分比转换**:程序中涉及到浮点数的乘法运算,如`0.1`、`0.075`等,这些代表百分比,需要转换成小数进行计算。 4. **用户输入**:使用`scanf`函数从键盘接收用户输入的利润值`i`。 5. **计算逻辑**:奖金计算根据输入的利润值动态调整,通过累加不同比例的奖金来得到最终结果。 【程序 3】的知识点: 1. **数学问题与编程结合**:该程序解决了一个数学问题,即找到一个整数,使得它加100和加268后都是完全平方数。程序通过循环遍历整数,使用`sqrt`函数计算平方根,并通过平方根的平方与原数比较来判断是否为完全平方数。 2. **范围限制**:程序在100000以内进行搜索,这是基于问题的实际情况设定的合理范围。 3. **效率优化**:尽管程序简单地进行了全量搜索,但在实际应用中,可以使用更高效的算法,例如二分查找或者数学公式,减少搜索次数。 【程序 4】的知识点: 1. **日期计算**:程序计算某一年中某一天的序号,涉及到日期的加法和减法。通过switch语句处理不同月份的天数,考虑到2月的特殊情况(闰年)。 2. **闰年判断**:程序中使用了一个名为`leap`的变量来标记是否为闰年,但实际代码中并未实现闰年的具体判断。完整的程序应包括闰年的判断,如`(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)`。 3. **输入处理**:通过`scanf`函数获取用户输入的年、月、日,并存储在对应的变量中。 4. **异常处理**:对于非法输入(例如非整数、月份超出范围等),程序应有适当的错误处理机制,例如使用try-catch或条件判断。 以上四个程序展示了C语言基础的循环、条件控制、数学计算以及输入输出等核心概念。通过这些实例,学习者可以加深对C语言编程的理解,并能运用到实际问题中。
剩余53页未读,继续阅读
- 粉丝: 1
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助