1. 程式人生 > >YTUOJ-計算該日在本年中是第幾天(用戶自己定義類型)

YTUOJ-計算該日在本年中是第幾天(用戶自己定義類型)

sin 例子 pan neu sso 定義類 () str 包括

題目描寫敘述

定義一個結構體變量(包含年、月、日)。編寫一個函數days,由主函數將年、月、日傳遞給函數days,計算出該日在本年中是第幾天並將結果傳回主函數輸出。

輸入

年月日

輸出

當年第幾天

例子輸入

2000 12 31

例子輸出

366

提示


主函數已給定例如以下。提交時不須要包括下述主函數
/* C代碼 */
int main()
{
y_m_d date;
int days(y_m_d);
int day_sum;
scanf("%d%d%d",&date.year,&date.month,&date.day);
day_sum=days(date);
printf("%d\n",day_sum);
return 0;
}

/* C++代碼 */
int main()
{
y_m_d date;
int days(y_m_d);
int day_sum;
cin>>date.year>>date.month>>date.day;
day_sum=days(date);
cout<<day_sum<<endl;
return 0;
}


全代碼例如以下:

#include <iostream>
using namespace std;
struct y_m_d
{
    int year;
    int month;
    int day;
};

int days(y_m_d d)
{
    int Days=d.day;
    for (int i=1; i<d.month; i++)
    {
        if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
            Days+=31;
        else if (i==4||i==6||i==9||i==11)
            Days+=30;
        else if (((d.year)%4==0 && (d.year) % 100 != 0)||(d.year)% 400 == 0)
            Days+=29;
        else
            Days+=28;
    }
    return Days;
}
int main()


{


    y_m_d date;


    int days(y_m_d);


    int day_sum;


    cin>>date.year>>date.month>>date.day;


    day_sum=days(date);


    cout<<day_sum<<endl;


    return 0;


}


執行結果:

技術分享

兩周沒有刷oj了,突然發現連日期怎麽計算都糾結了好久。還是去看曾經的博客才搞定。。。唉。必須找找狀態了

YTUOJ-計算該日在本年中是第幾天(用戶自己定義類型)