每日一题:统计天数

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

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函数需要进行两次回车可以输出,多用于无法判断终止条件的时候使用;

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

目录
相关文章
|
6月前
leetcode-1995. 统计特殊四元组
leetcode-1995. 统计特殊四元组
40 0
|
2月前
|
存储
判断某年某月某日
判断某年某月某日
82 11
|
6月前
题目----计算某年某月的天数
题目----计算某年某月的天数
45 0
AcWing 3498. 日期差值(每日一题)
AcWing 3498. 日期差值(每日一题)
|
6月前
题目----获得月份天数
题目----获得月份天数
28 0
|
6月前
|
Java 程序员 C++
日志统计(蓝桥杯每日一题)
日志统计(蓝桥杯每日一题)
51 1
|
6月前
|
Java 程序员 C++
日志统计(每日一题)
日志统计(每日一题)
48 0
|
测试技术
统计天数
统计天数
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
59 0
牛客网刷题—— 计算日期到天数转换
牛客网刷题—— 计算日期到天数转换