C语言 打渔晒网问题 017

#define _CRT_SECURE_NO_WARNINGS             //关闭安全检查
#include <stdio.h>
#include <stdlib.h>
#define  begyear  2011 
#define  begmonth  1
#define  begday  1
/*
	如果一个渔夫从2011年1月1日开始每三天打一次渔两天晒一次网,编程实现当输入2011年1月1日以后的任意一天
	输出该渔夫是在打渔还是在晒网?
*/

//判断润年
int leap(int year)
{
	int ret = 0;
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		ret = 1;
	}
	return ret;
}

//统计天数
int days(int year, int month, int day)
{
	int temp = 0;
	int date[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	year -= begyear;
	while (year)                                   //统计年的天数
	{
		if (leap(year + begyear))
		{
			temp += 366;
		}
		else
		{
			temp += 365;
		}
		year--;
	}
	for (int i = 1; i < month; i++)               //统计月的天数
	{
		temp += date[i - 1];
	}
	temp += day;                                 //加上当月的天数

	return temp;
}


int main()
{
		int year, month, day;
		int temp = 0;

AAA:	printf("请输入年月日:");
	    scanf("%d %d %d", &year, &month, &day);
		if (month > 12 || day > 31 || year < begyear)
		{
			printf("你真笨?日期都能输错?,赶紧重新输入\n");
			goto AAA;
		}
		
		temp = days(year, month, day);

		if ((temp % 5) <= 3 && temp % 5 > 0)        //取5的余,1 - 3 就是打渔 其他都是晒网;
		{
			printf("打渔\n");
		}
		else
		{
			printf("晒网\n");
		}

		printf("距离天数有%d天\n", temp);          //打印天数

		system("pause");

		return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值