• HDOJ2005-第几天?


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

    Input

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

    Output

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

    Sample Input

    1985/1/20
    2006/3/12
     

    Sample Output

    20
    71
     
    代码实现:
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int y,m,d,i,t;
     5     int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     6     while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
     7     {
     8         t=0;
     9         if(y%4==0&&y%100!=0||y%400==0)
    10             a[2]=29;
    11         else
    12             a[2]=28;
    13         for(i=0;i<m;i++)
    14             t+=a[i];
    15         t+=d;
    16         printf("%d
    ",t);
    17     }
    18     return 0;
    19 }

    1.闰年的算法:①能被4整除,但不能被100整除(例如2004是闰年,1900不是闰年);

           ②能被400整除(例如2000是闰年);

    2.用数组来放置不规则的月份天数;

    3.scanf()中的输入格式有所要求。

  • 相关阅读:
    POJ 1001 Exponentiation
    POJ 2105 IP Address
    条款1:视C++为一个语言联邦
    条款2:尽量使用const ,enum,inline替换define
    走台阶问题
    Oracle之分页问题
    Oracle之子查询:Top-N问题
    Facade——外观模式
    PROXY——代理模式
    C++ 内联函数
  • 原文地址:https://www.cnblogs.com/hhccdf/p/4334597.html
Copyright © 2020-2023  润新知