三天打鱼、两天晒网
1 /* 2 问题描述: 3 中国有句俗语叫“三天打鱼两天晒网”。 4 某人从1990年1月1日起开始“三天打鱼两天晒网” 5 问这个人在以后的某一天中是“打鱼"还是“晒网 6 7 问题分析 8 根据题意可以将解题过程分为三步: 9 (1)计算从1990年1月1日开始至指定日期共有多少天; 10 (2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除; 11 (3)根据余数判断他是在“打鱼”还是在“晒网”; 12 若余数为1,2, 3,则他是在“打鱼”,否则是在“晒网” 13 14 算法设计: 15 该算法为数值计算算法,要利用循环求出 16 指定日期距1990年1月1日的天数,并考虑 17 到循环过程中的闰年情况。闰年二月为29 18 天,平年二月为28天。 19 */ 20 21 #include "stdio.h" 22 23 int Sun(int year,int month,int day) 24 { 25 int sum=0; 26 int months[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; 27 for (int i = 1990; i < year; i++)//循环年 28 { 29 if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)//如果是闰年就 把months数组的第1位改成29 30 { 31 months[1] = 29; 32 } 33 for (int j = 0; j <= 11; j++) 34 { 35 sum += months[j];//求出年份一共多少天 36 } 37 } 38 //循环月 39 for (int k = 0; k < month-1; k++) 40 { 41 sum += months[k];//年份的天数+月数的天数+天数 42 } 43 return sum+day; //返回1990年1月1日开始至指定日期共有多少天 44 45 } 46 int main() 47 { 48 int year, month, day,days; 49 printf("请输入现在的年-月-日:"); 50 scanf_s("%d-%d-%d",&year,&month,&day);//接受现在的时间 51 days = Sun(year,month,day); 52 if (days % 5 == 1 || days % 5 == 2 || days % 5 ==3)//由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除; 53 { 54 printf("打鱼\n"); 55 } 56 else 57 { 58 printf("晒网\n"); 59 } 60 }
作者(小权权)
本文作者:HuangBingQuan
本文链接:https://www.cnblogs.com/bingquan1/p/12353252.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具