现在的位置: 首页 > 综合 > 正文

“输入年月日,求其为该年份的第几天”C代码

2019年04月25日 ⁄ 综合 ⁄ 共 641字 ⁄ 字号 评论关闭
#include<stdio.h>

int isLeap( int year )
{
	int flag = 0;
	if( (0 == year%400) || ((0 == year%4) && (0 != year%100)) )
		flag = 1;
	if( 1 == flag )
		return 1;
	return 0;
}

int main()
{
	int year, month, day;
	int DayNum ;
	int i;
	int NonLeap[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};			//保存平闰年月份对应的天数,用于查表
	int Leap[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
		
	while ((scanf("%d %d %d", &year, &month, &day)) != EOF ) {			//实现输入多组数据 以EOF停止输入     
		DayNum = 0;
		if( ((0==isLeap(year)) && (day>NonLeap[month])) || ((1==isLeap(year)) && (day>Leap[month])) )
			printf("Illegal\n");

		else {
			if( 0 == isLeap(year) ) {
				for( i=1; i<month; i++ ) 
					DayNum += NonLeap[i];
				DayNum += day;
			}	
			else {
				for( i=1; i<month; i++ )
					DayNum += Leap[i];
				DayNum += day;
			}
			printf("%d\n", DayNum);
		}
	}
	return 0;
}

抱歉!评论已关闭.