每日一题:统计天数

简介: 每日一题:统计天数

Description:

根据一些日期,以及日期上所做的标记,按条件统计其天数。

Input:

输入数据含有不多于50个的具有格式“Mon.DD YYYY”的日期,有些日期后面可能标有*,每个日期占一行。

Output:

统计任何月份中凡是25号的日期数,如果25号这一天后面标有*,则该天应加倍计算.

Sample Input:

0ct.25 2003

0ct.26 2003

Sep.12 2003*

Juy. 25 2002*

Sample Output:

3

代码一:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
    int count = 0;
    string date;
    while (getline(cin, date)) {
        int day = stoi(date.substr(4, 2));
        if (day == 25) {
            count++;
            if (date.back() == '*') {
                count++;
            }
        }
    }
    cout << count << endl;
    return 0;
}

运行结果:

1.直接回车两次:

会报错,并且返回值为应该输出结果

2.利用Ctrl和Z输入两次

结果正确了,但是输入与题干要求不符合

对代码进行改进:

#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
    int count = 0;
    string date;
    while (getline(cin, date)) {
        if (date == "")break;
        int day = stoi(date.substr(4, 2));
        if (day == 25) {
            count++;
            if (date.back() == '*') {
                count++;
            }
        }
    }
    cout << count << endl;
    return 0;
}

直接回车两次

改进之处:

添加了一行: if (date == "")break;

可以使输入条件进行限制与规范;

注意:

getline函数需要进行两次回车可以输出,多用于无法判断终止条件的时候使用;

输入数据时,月份后没有空格,只有日期与年份之间有空格,不要私自加空格,不然会无法调用函数,一直输不出正确结果,卡在这卡了好久。

目录
相关文章
|
3月前
|
存储
判断某年某月某日
判断某年某月某日
97 11
|
7月前
|
关系型数据库 MySQL
MySQL查询当天昨天明天本月上月今年等数据
MySQL查询当天昨天明天本月上月今年等数据
54 2
|
7月前
计算某年某月的天数
计算某年某月的天数
65 0
|
7月前
|
Java 程序员 C++
日志统计(蓝桥杯每日一题)
日志统计(蓝桥杯每日一题)
57 1
|
7月前
|
关系型数据库 MySQL
MySQL - 获取当天,昨天,本周,本月,上周,上月的起始时间
MySQL - 获取当天,昨天,本周,本月,上周,上月的起始时间
124 0
|
7月前
|
Java 程序员 C++
日志统计(每日一题)
日志统计(每日一题)
57 0
|
测试技术
统计天数
统计天数
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
64 0
判断某年某月的天数
输入年份和月份,返回该月份的天数
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
56 0

热门文章

最新文章