当前位置: 代码迷 >> C语言 >> 三天打鱼,两天晒网问题
  详细解决方案

三天打鱼,两天晒网问题

热度:283   发布时间:2006-10-23 12:19:26.0
三天打鱼,两天晒网问题



1、三天打鱼,两天晒网。从键盘任意输入一个年月日,时间范围(2005.1.1――2006.9.1),判断那天是打鱼还是晒网。



望高手指教~!

[此贴子已经被作者于2006-10-23 12:26:36编辑过]

搜索更多相关的解决方案: 两天晒网  三天打鱼  键盘  年月日  范围  

----------------解决方案--------------------------------------------------------
先计算那天距离2005。1.1的总天数,再除以5。余数为1,2,3的是打鱼,余数为4,0的是晒网...
----------------解决方案--------------------------------------------------------
嗯 楼上给的提示正确
因为打鱼和晒网的周期是五天,所以根据你给的时间范围算出具体是多少天(要注意是否是润年),然后用总天数对5求余,
若余数为1,2,3,则他是在打鱼,否则是在晒网

----------------解决方案--------------------------------------------------------

嗯,谢谢。这是一点。

然后再判断一下是否润年,程序大概就出来了。


----------------解决方案--------------------------------------------------------
2005和2006一看就知道不是润年了...
----------------解决方案--------------------------------------------------------

但如果范围在(2000.1.1-2010.12.30)里的话,就很麻烦了。

有没有可以通用,任意输入哪年哪天就可以判断的呢?


----------------解决方案--------------------------------------------------------
判断润年是不是除余100和400为0就是润年?
----------------解决方案--------------------------------------------------------
条件
(yyyy mode 4 = 0 and yyyy mode 100 <> 0) or
yyyy mode 400 = 0

----------------解决方案--------------------------------------------------------

#include<sio.h>
void main()
{
suct date today,term;
int yearday,year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day); /*输入日期*/
term.month=12; /*设置变量的初始值:月*/
term.day=31; /*设置变量的初始值:日*/
for(yearday=0,year=1990;year<today.year;year )
{
term.year=year;
yearday =days(term); /*计算从1990年至指定年的前一年共有多少天*/
}
yearday =days(today); /*加上指定年中到指定日期的天数*/
day=yearday%5; /*求余数*/
if(day>0&&day<4) printf("he was fishing at that day.\n"); /*打印结果*/
else printf("He was sleeping at that day.\n");
}



怎么来计算这一年有多少天呢?

[此贴子已经被作者于2006-10-23 18:42:49编辑过]


----------------解决方案--------------------------------------------------------
你先告诉我具体从哪一天开始打鱼的?我帮你搞定!

----------------解决方案--------------------------------------------------------