12 求第几天

问题描述 :

按年、月、日的顺序读入一个日期,输出该日期是这一年中的第几天。

输入说明 :

输入数据为三个正整数y 、m、d,分别表示年、月、日,整数之间以空格分隔,在行首和行尾没有多余的空格。

输出说明 :

输出一个整数,表示输入的日期是这一年中的第几天,在行首和行尾没有多余的空格。

输入范例 :2000 12 31

输出范例 :366

 

思想:判断平闰,然后累加前面几个月的长度,再加上当前月份的日期。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int year,month,date,res;
    int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    scanf("%d%d%d",&year,&month,&date);
    if (year%4==0&&year%100!=0||year%400==0) {
        day[1]++;
    }
    for(int i=0;i<month-1;i++){
        res+=day[i];
    }
    res+=date;
    printf("%d",res);

    return 0;
}

 

posted @ 2022-02-24 13:57  梦想是能睡八小时的猪  阅读(31)  评论(0)    收藏  举报