某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后
的某一天中是“打鱼”还是“晒网”?
分析:
1. 计算从1990年1月1日到指定日期总共有多少天
2. 打鱼和晒网的周期为5天,将总天数除以5取余数
3. 余数为1,2,3,则打鱼,否则为晒网
#include<stdio.h>typedef struct date
{int year;int month;int day;
} DATE;int countDay(DATE);int runYear(int); void main()
{DATE today;int totalDay;int result;printf("please input date like 1998 2 20 n");scanf("%d %d %d",&ar,&h,&today.day);totalDay = countDay(today);result = totalDay % 5;if(result>0 && result<4)printf("今天打鱼");elseprintf("今天晒网");
} //判断是否为闰年
int runYear(int year)
{if((year%4==0 && year%100!=0) || (year%400==0))return 1;elsereturn 0;
} //计算到指定日期的总天数
int countDay(DATE currentDay)
{int perMonth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int totalDay = 0,year,i;for(year=1990;year&ar;year++){if(runYear(year))totalDay = totalDay + 366;elsetotalDay = totalDay + 365;} if(ar))perMonth[2] += 1;for(i=0;i&h;i++)totalDay += perMonth[i];totalDay += currentDay.day; return totalDay;
}
本文发布于:2024-02-03 01:15:16,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689414247685.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |