牛客网-OJ在线编程常见输入输出练习场(C++)

2023-11-02

牛客网-OJ在线编程常见输入输出练习场(C++)
主要分成数字和字符串输入输出两个部分,只选取几个有代表性的,详细可以去[牛客网](https://ac.nowcoder.com/acm/contest/5647?from=hr_test#question) 。

1 数字输入输出

1.1 使用cin

G题:计算a+b

输入描述:

输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。

输出描述:

输出a+b的结果

输入例子1:

1 5
10 20

输出例子1:

6
30

代码:

#include <iostream>
using namespace std;
int main() {
    int a, b;
    while(cin >> a >> b) {
        cout << a+b << endl;
    }
    return 0;
}

cin是不会读空格和回车的。其实K题和这个是一样的,就是int改成long。如果代码觉得逻辑没有错误可以改一下数据类型。还有些题某一行的第一个输入为下面会输入多少数字,这种行控制方法比较容易实现,就不再赘述。如果没有告诉的,使用cin.get()。

1.2 使用cin.get()

计算一系列数的和

输入描述:

输入数据有多组, 每行表示一组输入数据。

每行不定有n个整数,空格隔开。(1 <= n <= 100)。

输出描述:

每组数据输出求和的结果

输入例子1:

1 2 3
4 5
0 0 0 0 0

输出例子1:

6
9
0

代码:

#include <iostream>
using namespace std;
int main() {
    int num;
    int sum = 0;
    while(cin >> num) {
        sum += num;
        if(cin.get() == '\n') {
            cout << sum << endl;
            sum = 0;
        }
    }
    return 0;
}

这里使用使用cin.get(),可以只读一个字符,空白字符和换行符都可以读进去。

2 字符串输入输出

2.1 使用cin

对输入的字符串进行排序后输出

输入描述:

输入有两行,第一行n

第二行是n个空格隔开的字符串

输出描述:

输出一行排序后的字符串,空格隔开,无结尾空格

输入例子1:

5
c d a bb e

输出例子1:

a bb c d e

代码:

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;
int main() {
    int num;
    cin >> num;
    vector<string> strs(num);
    while(--num >= 0) {
        cin >> strs[num];
    }
    sort(strs.begin(), strs.end());
    num = strs.size() - 1;
    for(int i = 0; i < num; ++i) {
        cout <<strs[i] <<' ';
    }
    cout <<strs[num] <<'\n';

    return 0;
}

这里的换行控制因为告诉了多少就直接利用cin来做了,如果事先没有告诉要输入多少个,需要利用cin.get()。

2.2 利用cin.get()

对输入的字符串进行排序后输出

输入描述:

多个测试用例,每个测试用例一行。

每行通过空格隔开,有n个字符,n<100

输出描述:

对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

输入例子1:

a c bb
f dddd
nowcoder

输出例子1:

a bb c
dddd f
nowcoder

代码:

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

using namespace std;
int main() {
    string str;
    vector<string> strs;
    while(cin >> str) {
        strs.push_back(str);
        if(cin.get() == '\n') {
            sort(strs.begin(), strs.end());
            int num = strs.size() - 1;
            for(int i = 0; i < num; ++i) {
                cout <<strs[i] <<' ';
            }
            cout <<strs[num] <<'\n';
            strs.clear();
        }
    }
    return 0;
}

这里利用cin.get()对换行进行了判断,这里都是建立在分隔符为空格的情况下,如果分隔符为,,如果用cin.get()会比较麻烦,下面是用getline()和istringstream的示例。

2.3 用getline()和istringstream

对输入的字符串进行排序后输出

输入描述:

多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100

输出描述:

对于每组用例输出一行排序后的字符串,用’,'隔开,无结尾空格

输入例子1:

a,c,bb
f,dddd
nowcoder

输出例子1:

a,bb,c
dddd,f
nowcoder

逆向思维

#include <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <string>

using namespace std;

int main()
{    
    string line;
    while (getline(cin, line)) {//while (cin >> line)
        istringstream sin(line);
        string str;
        vector<string> strs;
        while (getline(sin, str, ',')) {
            strs.push_back(str);
        }
        sort(strs.begin(),strs.end());
        int num = strs.size() - 1;
        for(int i = 0; i < num; ++i) {
            cout <<strs[i] <<',';
        }
        cout <<strs[num] <<'\n';
    }
    return 0;
}

getline()可以实现对流的自定义读取,使用istringstream将一个字符串变成了流,这样能被getline使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

牛客网-OJ在线编程常见输入输出练习场(C++) 的相关文章

  • 部署 MVC4 项目时出错:找不到文件或程序集

    过去 我只需使用 Visual Studio 2012 发布到 AWS 菜单项即可部署我的 MVC4 网站 到 AWS Elastic Beanstalk 现在 程序可以在本地编译并运行 但无法部署 从消息来看 它似乎正在寻找不在当前部署的
  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • .Net Core / 控制台应用程序 / 配置 / XML

    我第一次尝试使用新的 ConfigurationBuilder 和选项模式进入 Net Core 库 这里有很多很好的例子 https docs asp net en latest fundamentals configuration ht
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 可空属性与可空局部变量

    我对以下行为感到困惑Nullable types class TestClass public int value 0 TestClass test new TestClass Now Nullable GetUnderlyingType
  • AccessViolationException 未处理

    我正在尝试使用史蒂夫 桑德森的博客文章 http blog stevensanderson com 2010 01 28 editing a variable length list aspnet mvc 2 style 为了在我的 ASP
  • EPPlus Excel 更改单元格颜色

    我正在尝试将给定单元格的颜色设置为另一个单元格的颜色 该单元格已在模板中着色 但worksheet Cells row col Style Fill BackgroundColor似乎没有get财产 是否可以做到这一点 或者我是否必须在互联
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 理解全虚拟、半虚拟以及硬件辅助的虚拟化

    接触过的一些搞了几年云计算的童鞋 也没明白常见的几种虚拟机技术方案的异同 比如只是记住了半虚拟要在虚拟机装驱动而全虚拟不需要 也不知道有时候为什么需要打开BIOS里的VT项 本人呢 在看了各种讲解虚拟化的书籍之后 有些概念虽然不是很清晰 但
  • HashPasswordForStoringInConfigFile 已过时

    https blog csdn net ibenxiaohai123 article details 77453340 https docs microsoft com en us dotnet api system security cr
  • 【ES6】对象的扩展

    文章目录 一 对象的扩展 二 用法详解 1 属性的简洁表示 2 属性名表达式 3 Object is 4 扩展运算符与Object assign 5 in 6 对象的遍历方式 一 对象的扩展 属性的简洁表示法 属性名表达式 Object i
  • Qt-初识

    文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 一 是什么 Qt是一个由Qt Company开发的跨平台C 图形用户界面应用程序开发框架 它既可以开发GUI程序 也可用于开发非GUI程序 比如控制台工具
  • MATLAB 2018中LSTM时间序列分类

    从MATLAB2018a开始 增加了LSTM神经网络工具箱 上图将时序数据分类为categorical 0 或categorical 1 每一行代码解释如下 该时序数据每一个时刻都是一个11维的列向量 隐藏层节点为270 分为两类0或1 构
  • Ciclop horus源码编译

    1 简介 Ciclop是西班牙BQ公司开源的一个DIY 3D扫描仪Horus则是配套开发的3D扫描软件 这款Ciclop是完全开源的 该公司甚至把有关这台3D扫描仪的所有相关机械设计 电子 软件 算法 数学和进行的测试都公布在了开源社区上
  • mysql 参数单位_MySQL参数配置

    参数名称 参数说明 缺省值 最低版本要求 user 数据库用户名 用于连接数据库 所有版本 passWord 用户密码 用于连接数据库 所有版本 useUnicode 是否使用Unicode字符集 如果参数characterEncoding
  • 数据结构学习系列之顺序表的两种删除方式

    方式1 在顺序表的末端删除所存储的数据元素 代码如下 示例代码 int delete seq list 1 list t seq list if NULL seq list printf 入参为NULL n return 1 if 0 se
  • WEB端测试点----整理

    目录 1 功能测试 1 1链接测试 1 2表单测试 1 3数据校验 1 4 cookies测试 1 5数据库测试
  • 【实战】k8s集群中通过docker容器部署Squid正向代理

    1 Squid简介 2 问题描述 3 k8s集群中容器化部署Squid 3 1 环境说明 3 2 在公网节点使用docker安装squid 3 3 配置受信 3 4 修改Squid配置文件 4 代理上网 4 1 为其它节点上的docker配
  • 基于改进 YOLOv5 的小目标检测论文代码复现

    使用yolov5 6 0源码 yolov5x yaml yolov5x pt 1 在主干网络中 加入CBAM 注意力模块增强网络特征提取能力 参考 加入CBAM YOLOv5 v6 0 backbone backbone from numb
  • 病毒相关网址

    病毒命名概述 https www symantec com security center a z https global ahnlab com site securitycenter viruscenter virusList do E
  • 华为snmpv3配置

    华为snmpv3配置 snmp agent 开启SNMP协议 snmp agent community read huawei acl 2001 只读属性为huawei 匹配acl 2001 snmp agent community wri
  • 一:单链表——⑤带环单链表的详细讲解

    今天看了一篇关于带环单链表精讲的文章 在这里给大家做一个总结 之前看过很多有关单链表带环的文章 但是有些文章讲的太文章化 不容易理解 理论性太强 接下来我会用最简单通俗易懂的语言解析这个问题 当你拿到一个单链表的数据信息时 我相信大部分的人
  • crontab执行脚本出错

    最近经常碰到关于crontab不能执行的 初步总结了有以下几个原因 第一 脚本的原因 大多数情况下 是我们的脚本的问题 这种问题导致crontab不能执行的概率占到70 以上 因为程序执行到某一步导致crontab终止执行 如 数据库访问出
  • 冒泡排序的理解

    冒泡排序将数组内的元素进行一定序列的算法 如 1 5 4 6 就变成 1 4 5 6 还可以 6 5 4 1 如何实现 例如 7 23 12 4 13 21 2 17 13 9 1 7与23比较 比较出最值 如果比较最大值 7 lt 23
  • 记录运行tensorflow报错及解决方法

    1 Could not load dynamic library libcudart so 11 0 dlerror libcudart so 11 0 cannot open shared 解决方法 安装cuda 1 下载cuda安装包
  • C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子

    C WinForm父级窗体内Panel容器中嵌入子窗体 程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序 顺便大概划分了下界面模块和配色 不足之处还望指点 主窗体窗体采用前面一篇博客设计扁平化窗体 C 自定义W
  • 用Python抢茅台脚本,转手纯赚一千!这不比什么兼职都管用?

    12 月我在朋友圈看到非常多的人开始在某东上抢茅台 抢到的话一瓶只要 1499 元 转手一卖就能净赚 1000 块钱 这简直就是白送钱的事嘛 就算不卖 自己囤着过个几年价格肯定又要上涨 像这种好事 我当然第一时间去体验了 抢了几天后 却抢了
  • 牛客网-OJ在线编程常见输入输出练习场(C++)

    牛客网 OJ在线编程常见输入输出练习场 C 主要分成数字和字符串输入输出两个部分 只选取几个有代表性的 详细可以去 牛客网 https ac nowcoder com acm contest 5647 from hr test questi