游客 Signup | Login
中文 | En

1226 - C语言8.30

给出年、月、日,使用一个函数计算出该日是该年的第几天。

Input

只有一行,包含三个正整数分别表示年、月、日。保证年份在0至3000之间,且月、日信息符合规则。

Output

输出该日是该年的第几天。

请注意行尾输出换行。

Examples

Input

2013 2 10

Output

41

Solution C

#include<stdio.h>
int main()
{
	int year,month,day;
	scanf("%d %d %d",&year,&month,&day);
	if((year%4==0&&year%100!=0)||(year%400==0))
	{
		switch(month)
		{
			case 1:printf("%d\n",day);break;
			case 2:printf("%d\n",day+31);break;
			case 3:printf("%d\n",day+60);break;
			case 4:printf("%d\n",day+91);break;
			case 5:printf("%d\n",day+121);break;
			case 6:printf("%d\n",day+152);break;
			case 7:printf("%d\n",day+182);break;
			case 8:printf("%d\n",day+213);break;
			case 9:printf("%d\n",day+244);break;
			case 10:printf("%d\n",day+274);break;
			case 11:printf("%d\n",day+305);break;
			default :printf("%d\n",day+335);break;
		}
	}
	else
	{
		switch(month)
		{
			case 1:printf("%d\n",day);break;
			case 2:printf("%d\n",day+31);break;
			case 3:printf("%d\n",day+59);break;
			case 4:printf("%d\n",day+90);break;
			case 5:printf("%d\n",day+120);break;
			case 6:printf("%d\n",day+151);break;
			case 7:printf("%d\n",day+181);break;
			case 8:printf("%d\n",day+212);break;
			case 9:printf("%d\n",day+243);break;
			case 10:printf("%d\n",day+273);break;
			case 11:printf("%d\n",day+304);break;
			default :printf("%d\n",day+334);break;
		}
	}
	return 0;
}

Solution C++

#include <stdio.h>
struct date {
	int year, month, day;
};
int main() {
	int days(struct date today);
	struct date today;
	scanf("%d %d %d", &today.year, &today.month, &today.day);
	printf("%d\n", days(today));
	return 0;
}
/* 计算输入的日期是当年的第几天 */
int days(struct date today) {
	int is_leap_year(int year);
	int day_of_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	int i, totdays = 0;
	for (i = 1;i < today.month;i++) {
		totdays += day_of_month[i - 1];
		if (i == 2 && is_leap_year(today.year) == 1)
			totdays++;
	}
	totdays += today.day;
	return totdays;
}
/* 判断是否是闰年 */
int is_leap_year(int year) {
	if (year % 4 == 0) {
		if (year % 100 == 0 && year % 400 != 0)
			return 0;
		return 1;
	}
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题