问题描述
输入某年某月某日,判断这一天是这一年的第几天?例如,2010年1月1日是这一年的第一天,而2018年12月31日是这一年的第365天。
输入说明
输入三个整数分别表示年(1900~2030)、月(1~12)、日(1~31),数据间空一个空格。
输出说明
输出一个整数,表示输入的日期是该年的第几天
输入样例
2000 3 1
输出样例
61
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int year, month, day, num = 0;
int i;
int a[12] = {31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30 ,31,};
scanf("%d %d %d", &year, &month, &day);
if((year%4==0)&&(year%100!=0)||(year%400==0)){ //判断闰年
a[1]++;
}
for(i=0;i<month-1; i++){
num += a[i];
}
num+=day;
printf("%d", num);
return 0;
}
PS:如何判断是否为闰年,年份可以被4整除但是不能被100整除,或可以被400整除的年份为闰年,二月加一天。