只是样例对了并自我感觉对了,所以如果有错误还往各位大佬指正。
试题名称 | 判断天数 |
时间限制: | 1 秒 |
内存限制: | 256MB |
问题描述 | 问题描述 输入某年某月某日,判断这一天是这一年的第几天?例如,2010年1月1日是这一年的第一天,而2018年12月31日是这一年的第365天。 输入说明 输入三个整数分别表示年(1900~2030)、月(1~12)、日(1~31),数据间空一个空格。 输出说明 输出一个整数,表示输入的日期是该年的第几天 输入样例 2000 3 1 输出样例 61 |
#include<stdio.h>
int main()
{
int year, month, day;
int ans=0;
scanf_s("%d %d %d", &year, &month, &day);
int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//闰年各个月份的天数
int unrun[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//非闰年各个月份的天数
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)//判断是否为闰年
{
for (int i = 0; i < month-1; i++)//注意-1,不加和当月的总天数
{
ans += run[i];
}
ans = ans + day;//在这里加和当月的天数
}
else
{
for (int i = 0; i < month - 1; i++)
{
ans += unrun[i];
}
ans = ans + day;
}
printf("%d", ans);
return 0;
}