码迷,mamicode.com
首页 > 其他好文 > 详细

杭电oj 2005

时间:2018-02-27 14:55:22      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:pac   while   ==   include   格式   bottom   杭电   数据   数据格式   

Problem Description

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

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 
问题分析:
年月日一起输入,最先考虑使用字符串直接全部输入,然后考虑到年月日的字符个数均不确定,所以还是选择分开输入,但是年月日中间使用了/分隔符,所以使用scanf输入最合适。
题目主要是判断闰年,然后可以使用一个二维数组来分别保存两种情况下每个月的天数,使用循环累加即可
参考代码:
#include <iostream>
using namespace std;
int  lev(int n) 
{
    if(n % 4 == 0 && (n % 100 != 0 || n % 400 == 0))
    return 0;
    else return 1;
}
int main(int argc, char** argv) {
    int y,m,d;
    int month[2][13]={
        {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
        {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
    };
    while(scanf("%d/%d/%d",&y,&m,&d) != EOF)
    {
        int s=0;
        int i;
        for(i=1;i<m;i++){
            s+=month[lev(y)][i];
        } 
        s+=d;
        cout<<s<<endl;
    }
    return 0;
}

 

 

杭电oj 2005

标签:pac   while   ==   include   格式   bottom   杭电   数据   数据格式   

原文地址:https://www.cnblogs.com/c-xiao/p/8478461.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!