YTUOJ-計算該日在本年中是第幾天(使用者自定義型別)

不被看好的青春叫成長發表於2015-03-18

題目描述

定義一個結構體變數(包括年、月、日)。編寫一個函式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了,突然發現連日期怎麼計算都糾結了好久,還是去看以前的部落格才搞定,,,唉,必須找找狀態了

相關文章