Problem Q: C语言习题 计算该日在本年中是第几天

Problem Q: C语言习题 计算该日在本年中是第几天

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4572  Solved: 2474
[Submit][Status][Web Board]

Description

定义一个结构体变量(包括年、月、日)。编写一个函数days,由主函数将年、月、日传递给函数days,计算出该日在本年中是第几天并将结果传回主函数输出。

 

Input

年月日

 

Output

当年第几天

 

Sample Input

2000 12 31

Sample Output

366

HINT

 


主函数已给定如下,提交时不需要包含下述主函数

/* C代码 */

int main()

{

    struct 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<stdio.h>
#include<string.h>
struct y_m_d
{
    int year;
    int month;
    int day;
}date;
int days(struct y_m_d date)
{
    int i,r;
    r=date.day;
    if( (date.year%4==0&& date.year%100!=0)||(date.year%400==0))
            r=r+1;
    for(i=1;i<=date.month;i++)
    {
        if(i==2)
            r+=31;
        if(i==3)
            r+=28;
        if(i==4)
            r+=31;
        if(i==5)
            r+=30;
        if(i==6)
            r+=31;
        if(i==7)
            r+=30;
        if(i==8)
            r+=31;
        if(i==9)
            r+=31;
        if(i==10)
            r+=30;
        if(i==11)
            r+=31;
        if(i==12)
            r+=30;
    }
    return r;
}
int main()


{


    struct 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;


}

  


 
posted @ 2018-03-16 21:23  青衫客36  阅读(552)  评论(0编辑  收藏  举报