输出日期

#include <stdio.h>
//输入年份和天数。输出对应的年、月、日,如输入:2000 61 ,则输出:第2000年的第61天是3月1日。 

int main()
{
	int year,days,month,day;
	int transform(int,int,int*pmonth,int*pday);     //转换函数 
	scanf("%d %d",&year,&days);
	if (transform(year,days,&month,&day)==0)
	printf("%d年的第%d天是%d月%d日。",year,days,month,day);
	else
	printf("非法输入"); 
	return 0;
} 

int transform(int year,int days,int*pmonth,int*pday)
{
	int a[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}},i,k;     //建立二维数组用于存储闰年和非闰年每月的天数 
	if (days>366 || days<0 || year<0) return 1;       //判断输入是否合法 
	if ((year%4==0 && year%100!=0)||year%400==0)     //闰年的判断条件 
	{
		k=1;
	}else
	{
		k=0;
	}
	for (i=0;i<12;i++)
	{
		if  (days<=a[k][i])
		{
			*pmonth=i+1;                  //通过指针修改外部变量的值 
			*pday=days;                   //同上 
				break;
		}else
		{
			days-=a[k][i];
		}

	}
	return 0;	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值