码迷,mamicode.com
首页 > 其他好文 > 详细

华为机试—算日期

时间:2014-12-24 10:01:27      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:华为机试   算日期   闰年   

题目:算日期

输入一个日期,输出这是这一年的第几天。(题目中没有给出闰年的定义)

输入 20131231

输出 365


#include <stdio.h>   
  
//判断是否为闰年
int isleapyear(int year)  
{  
    if(year%4==0 && year%100!=0 || year%400==0)  
        return 1;  
    return 0;  
}  
  
int main()  
{  
	int year,month,day;
	char a[8];
	int leap[13]={0,31,60,91,121,152,182,213,244,274,305,335,366};
	int noleap[13]={0,31,59,90,120,151,181,212,243,273,304,334,365};

	while(scanf("%s",a)!=EOF){
			year = (a[3]-'0')+(a[2]-'0')*10+(a[1]-'0')*100+(a[0]-'0')*1000;
			month = (a[5]-'0')+(a[4]-'0')*10;
			day = (a[7]-'0')+(a[6]-'0')*10;

			if(isleapyear(year)){
				printf("%d\n",leap[month-1]+day);
			}else{
				printf("%d\n",noleap[month-1]+day);
			}
	}
	return 0;
}  

测试结果,可能不周全,欢迎查漏补缺,

技术分享



华为机试—算日期

标签:华为机试   算日期   闰年   

原文地址:http://blog.csdn.net/wtyvhreal/article/details/42119959

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!