打鱼还是晒网.c

本文介绍了一个使用C语言编写的程序,该程序能够计算指定日期是一年中的第几天,并根据计算结果判断一个人是否在“三天打鱼两天晒网”的规律下钓鱼。通过输入具体的年月日,程序会判断这一年是否为闰年,并据此计算天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//  三天打鱼两天晒网

#include <stdio.h>

struct date {
	int year;
	int month;
	int day;
};

days(day)
	struct date day;
{
	static int day_tab[2][13] = 
			{{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,},    // 平年每月的天数
			 {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,}};   // 闰年每月的天数

	int i,leap;
	leap = day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0;
					// 判断year为闰年还是平年,leap = 0 为平年,非0为闰年
	for (i = 1; i < day.month; i++)  // 计算本年中自1月1日起的天数
		day.day += day_tab[leap][i];

	return (day.day);
}

int main()
{
	struct date today;
	struct date 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");
	
	return 0;
}
 

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值