每日一题:统计天数

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

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天前
计算某年某月某日是星期几
计算某年某月某日是星期几
|
6天前
|
Java 程序员 C++
日志统计(每日一题)
日志统计(每日一题)
25 0
|
6天前
|
Java 程序员 C++
日志统计(蓝桥杯每日一题)
日志统计(蓝桥杯每日一题)
31 1
|
7月前
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
OJ题库:计算日期到天数转换、打印从1到最大的n位数 、尼科彻斯定理
33 0
|
8月前
|
测试技术
统计天数
统计天数
|
9月前
|
C++
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
41 0
|
10月前
牛客网刷题—— 计算日期到天数转换
牛客网刷题—— 计算日期到天数转换
|
11月前
|
算法 程序员
【LeetCode——编程能力入门第一天】基本数据类型[在区间范围内统计奇数数目/去掉最低工资和最高工资后的工资平均值)
给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。 示例 1: 输入:low = 3, high = 7 输出:3 解释:3 到 7 之间奇数数字为 [3,5,7] 。 示例 2: 输入:low = 8, high = 10 输出:1 解释:8 到 10 之间奇数数字为 [9] 。 提示: 0 <= low <= high <= 10^9。
78 0
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
31 0