C语言解决打鱼晒网问题

题目

在这里插入图片描述

解决
	#include <stdio.h>
	
	/*判断输入的年份是否为闰年*/
	int leap(int a) 
	{
	    if (a%4==0&&a%100!=0||a%400==0)    /* 闰年判定条件 */
	        return 1;    /*是闰年返回1*/
	    else
	        return 0;    /*不是闰年返回O*/
	}
	
	/*计算输入日期距2011年1月1日共有多少天*/
	int number(int year,int month,int day)    
	{
	    int sum = 0, i, j, k;
	    int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};    /*数组a存放平年每月的天数*/
	    int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};    /*数组b存放闰年每月的天数*/
	
	    if(leap(year)==1)    /*判断是否为闰年*/
		{
		    for(i=0;i<month-1;i++)
			    sum+=b[i];       /*是闰年,累加数组b前m-1个月份的天数*/
		} 
		else
		{
			for(i=0;i<month-1;i++)
				sum+=a[i];       /*不是闰年,累加数组a前m-1个月份的天数*/
		}
	 
		for(j=2019;j<year;j++)
		{
			if (leap(j)==i)
				sum+=366;  /*2011年到输入的年份是闰年的加366*/
			else
				sum+=365;  /*2011年到输入的年份不是闰年的加365*/
		}
	   
	    sum+=day;      /*将前面累加的结果加上日期,求出总天数*/
	    return sum;    /*返回计算的天数*/
	}
	
	/*判断渔夫是打鱼还是晒网*/
	int algo(int d) 
	{    
		if(d%5==0||d%5==4)
			return 0;   //返回0表示晒网
		else
		    return 1;   //返回1表示打鱼
	}
	
	void main()
	{
		int year,month,day,d;
		year=2019,month=1,day=1; 
		printf("开始打鱼晒网的日期是\n%d %d %d\n",year,month,day);
		printf("请输入开始打鱼晒网后任意一天的日期:\n");
		scanf("%d%d%d",&year,&month,&day);
		d=number(year,month,day);
		printf("开始日期和输入日期相隔%d天\n",d);
		if(algo(d)) //这里的相隔日期包括了2019年1月1日
			printf("渔夫这天打鱼\n");
		else
			printf("渔夫这天晒网\n");
	}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值