杭电 acm 2005(第几天?)

题目:
Problem Description
给定一个日期,输出这个日期是该年的第几天。

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input
1985/1/20 2006/3/12

Sample Output

20 71


思路是
1.将每个月之前的天数,打表起,如1月 就是0,2月就是31,以此类推;
2.要注意的是闰年,需要一个参数,来判断;
3.就是格式要注意,如输入有'/',那么在scanf里也要有'/'。

代码如下:
#include<stdio.h>
int p(int a)                 //p函数是判断该年是否为闰年,如果是闰年返回1,不是闰年返回0,然后总天数再相加
{ 
    if(a%4==0&&a%100!=0||a%400==0) 
        return 1; 
    else 
        return 0;
} 
int main()
{
    int a,b,c,d,i,sum; 
    int j[12]={0,31,59,90,120,151,181,211,242,273,303,334};
    while(~scanf("%d%d%d",&a,&b,&c)) 
    {
         if(p(a)&&b>2)
             d=1;
         else
             d=0;
         printf("%d\n",d+j[b-1]+c);
     } 
     return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值