初学C语言 13年蓝桥杯高斯日记 记录

本文详细描述了一个用C语言编写的程序,用于计算给定天数对应的年月日,考虑了闰年的规则。程序针对输入的天数小于或大于245的情况分别处理,适用于公历日期计算。
摘要由CSDN通过智能技术生成
#include<stdio.h>
int main()
{
	int year = 1777,month = 4,day = 30,sum=0,days,days_before,i=0,days_before1,c=1;
	int normal_year[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
	int leap_year[12] = {31,29,31,30,31,30,31,31,30,31,30,31};	
	scanf("%d",&day);
	if(day<=245)
	{
		for(month=4;month<12;month++)
		{
			days = sum;
			sum+= normal_year[month];
			if(sum<day)
			continue;
			else if(sum>=day)
			{
				days_before = sum - day; 
				break;
			}	
		}
		printf("%d/%d/%d\n",year,month+1,normal_year[month]-days_before);
	}
	if(day>245)
	{
		sum = 245;
		for(year=1777;sum<day;year++)
		{	
			if(year%4==0&&year%100!=0||year%400==0)			
			for(;sum<day;i++ )
			{
					days_before1 = sum;
					sum+= leap_year[i];
					if(sum>day)
					break;
					else if(i==11&&sum<day)
					{i= 0;
					break;}
					else if(sum ==day)
					break;
			}
			else 
			for(;sum<day;i++)
			{
					days_before1 = sum;
					sum+= normal_year[i];
					if(sum>day)
					break;
					else if(i==11&&sum<day)
					{i=0;
					break;}
					else if(sum == day)
					break;
			}
		}
		
	}
	if(sum == day&&i!=11)
	printf("%d/%d/%d\n",year,i+2,c);
	printf("%d/%d/%d\n",year,i+1,(sum-days_before1)-(sum-day));	
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值