三天打鱼两天晒网

题目要求:中国有句俗语叫“三天打鱼两天晒网”。若我很懒,从2000年1月1日起开始打鱼,日后的日子三天打鱼两天晒网。请随便输入一个日子,格式为****/**/**,判断我在这天是打鱼还是晒网。

1.1输入示例:

2001/3/1

1.2输出示例:

fishing

2.1输入示例:

2000/1/5

2.2输出示例:

sleeping

…………………………………………………………………………………………………………………

完成此题,看似困难,其实很简单。只需要判断输入的日期距离输出的日期过了几天,然后sumday取余5,看余数是几即可完成任务,但是,不要忘了判断闰年哦。

先输入年/月/日:

int year,mouth,day,i,j,sum=0;

 scanf("%d/%d/%d",&year,&mouth,&day);

闰年判断语句:

for(i=2000;i<year;i++)
 {
    if((i%100!=0&&i%4==0)||(i%400==0))//判断输入年份的前一年是否为闰年
    {
  	   sum=sum+366;//闰年天数366
	}
    else 
    {
  	   sum=sum+365;//不是闰年天数365
	}
 }

判断年数都之后要判断月份:

for(j=1;j<mouth;j++)
{
   if((year%100!=0&&year%4==0)||(year%400==0))//闰年
   {
     if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)//三十一天
     {
      	sum=sum+31;
     }  
     else if(j==4||j==6||j==9||j==11)//三十天
     {
    	sum=sum+30;
     }
     else if(j==2)//二十九天
     {
      	sum=sum+29;
     }
   }
   else//不是闰年
   {
     if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)//三十一天
     {
    	sum=sum+31;
     }   
     else if(j==4||j==6||j==9||j==11)//三十天
     {
      	sum=sum+30;
     }
     else if(j==2)//二十八天
     {
      	sum=sum+28;
     }   
   }
}

年份和月份的和加完之后就剩下天数了:

sum=sum+day;

最后判断打鱼还是晒网:

if(sum%5==1||sum%5==2||sum%5==3)//三天打鱼
 printf("fishing");
else if(sum%5==0||sum%5==4)//两天晒网
 printf("sleeping");

return 0;程序完成。

完整代码:

#include<stdio.h>
int main()
{
    int year,mouth,day,i,j,sum=0;
    scanf("%d/%d/%d",&year,&mouth,&day);
    for(i=2000;i<year;i++;
    {
       if((i%100!=0&&i%4==0)||(i%400==0))
       {
    	sum=sum+366;
	   }
       else 
       {
  	   sum=sum+365;
	   }
    }
    for(j=1;j<mouth;j++)
    {
        if((year%100!=0&&year%4==0)||(year%400==0))
        {
        if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
        {
      	sum=sum+31;
	    }
        else if(j==4||j==6||j==9||j==11)
        {
       	sum=sum+30;
	    }
        else if(j==2)
        {
       	sum=sum+29;
	    }
    }
    else
    {
      if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
      {
      	sum=sum+31;
	  }
      else if(j==4||j==6||j==9||j==11)
      {
      	sum=sum+30;
 	  }
      else if(j==2)
      {
      	sum=sum+28;
	  }
	}
   }
    sum=sum+day;
    if(sum%5==1||sum%5==2||sum%5==3)
    printf("fishing");
    else if(sum%5==0||sum%5==4)
    printf("sleeping");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值