:sum = 90; break; case5:sum = 120; break; case6:sum = 151; break; case7:sum = 181; break; case8:sum = 212; break; case9:sum = 243; break; case10:sum = 273; break; case11:sum = 304; break; case12:sum = 334; break; default:printf("Invalid month"); break; } // 判断是否为闰年 if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) leap = 1; // 是闰年 else leap = 0; // 不是闰年 // 如果是闰年并且月份大于2,则需要额外加上一天 if(leap && month > 2) sum += 1; sum += day; // 加上当月的日期 printf("This day is the %dth day of the year.\n", sum); } ### C语言经典算法100例解析 #### 知识点1:组合数学基础应用 **问题描述:** 题目要求找出由数字1、2、3、4组成的互不相同且无重复数字的所有三位数。 **解决方案分析:** - **方法概述:** 通过三层循环遍历所有可能的组合,并添加条件判断以确保每一位上的数字都是唯一的。 - **实现思路:** - 第一层循环控制百位上的数字。 - 第二层循环控制十位上的数字。 - 第三层循环控制个位上的数字。 - 在三层循环内部,通过`if`语句检查三位数字是否互不相同。 - 如果条件满足,则输出这些数字的组合。 **关键代码片段:** ```c 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); ``` #### 知识点2:条件分支与数值计算 **问题描述:** 设定一个企业的奖金发放规则,根据企业的不同利润水平设定不同的提成比例,并根据输入的利润值计算应发放的奖金总额。 **解决方案分析:** - **方法概述:** 根据利润的不同区间设定不同的提成比例,通过`if-else`语句实现条件分支,计算出最终的奖金总额。 - **实现思路:** - 定义各个利润区间的提成上限值。 - 使用`if-else`结构对输入的利润值进行分类处理。 - 计算奖金总额并输出。 **关键代码片段:** ```c 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 if(i <= 1000000) bonus = bonus6 + (i - 600000) * 0.015; else bonus = bonus10 + (i - 1000000) * 0.01; printf("bonus=%d", bonus); ``` #### 知识点3:完全平方数判断与数学函数的应用 **问题描述:** 寻找一个整数,使得它加上100后是一个完全平方数,再加上168又是一个完全平方数。 **解决方案分析:** - **方法概述:** 通过对一定范围内的整数进行遍历,并利用平方根函数`sqrt()`来判断是否符合题目要求。 - **实现思路:** - 使用`for`循环遍历指定范围内的整数。 - 对每个整数分别加上100和268,并计算它们的平方根。 - 检查两个结果是否都为完全平方数(即平方根的平方等于原数)。 - 如果条件满足,则输出该整数。 **关键代码片段:** ```c for(i = 1; i < 100000; i++) { x = sqrt(i + 100); y = sqrt(i + 268); if(x * x == i + 100 && y * y == i + 268) printf("\n%ld\n", i); } ``` #### 知识点4:日期计算与逻辑判断 **问题描述:** 输入某年某月某日,计算这一天是一年的第几天,并考虑闰年的影响。 **解决方案分析:** - **方法概述:** 根据输入的年月日计算该日是一年中的第几天,同时需要处理闰年的情况。 - **实现思路:** - 使用`switch`语句根据输入的月份计算到该月为止的总天数。 - 通过条件判断来确定是否为闰年。 - 如果是闰年且月份大于2月,则需要额外加1天。 - 最终加上输入的日期值,得出该日是一年中的第几天。 **关键代码片段:** ```c if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) leap = 1; else leap = 0; if(leap && month > 2) sum += 1; sum += day; printf("This day is the %dth day of the year.\n", sum); ``` 以上四个案例涵盖了C语言中常见的几种编程技巧,包括基本的循环控制、条件分支、数学函数的应用以及日期计算等,对于初学者来说是非常好的实践练习。
剩余53页未读,继续阅读
- 粉丝: 62
- 资源: 12
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助