每日一题2023.7.19|ACM模式

这篇具有很好参考价值的文章主要介绍了每日一题2023.7.19|ACM模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++的输入方式介绍

参考博客

cin>>

最基本,最常用的字符或者数字的输入方式。在输入过程中会过滤掉不可见字符、如空格、回车、tab。若不想过滤掉空白字符,可以使用noskipws流进行控制。

#include<iostream>
using namespace std;
int main(){
    int input[5];
    for(int i=0;i<5;++i) cin>>input[i];
    for(int i=0;i<5;++i) cout<<input[i]<<" ";
    cout<<endl;
    return 0;
}

运行结果
每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言
遇到空格回车等会结束获取输入的字符串,后面的字符串会被过滤掉(存放在输入流中),如果后面还需要输入字符串,则会从前面存放的字符串开始获取。

#include<iostream>
using namespace std;
int main(){
    char c[20];
    cin>>c;
    cout<<c<<endl;
    char d[20];
    cin>>d;
    cout<<d<<endl;
    cout<<endl;
    return 0;
}

运行结果
每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

cin.get(字符变量名)

此函数从输入流中读入一个字符(char,非int,如果定义为数组或者int就会出错)返回值是该字符的ascii值,碰到输入的末尾返回EOF(值为-1)
cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格遇回车结束。

#include<iostream>
using namespace std;
int main(){
    char c[6];
    for(int i=0;i<5;++i) cin.get(c[i]);
    for(int i=0;i<5;++i) cout<<c[i];
    c[5]='\0';
    cout<<endl<<c<<endl;
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

cin.get(数组名,接收字符数目)

用来接受字符串,可以接收空格遇回车结束。(数组的最后一位是‘\0’,所以预设数组大小要比接收字符大小大1)

#include<iostream>
using namespace std;
int main(){
    char c[6];
    cin.get(c,6);
    cout<<c<<endl;
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

cin.get()

没有参数,主要用于舍弃输入流中不需要的字符或者舍弃回车(舍弃紧挨着的一个字符)。

cin.getline()

读取字符。getline()是istream类的成员函数,有如下两个重载版本

istream &getline(char*buf,int bufsize);
istream &getline(char*buf,int bufsize,char delim);//自定义结束字符

第一个版本从输入流中读取bufsize-1个字符到缓冲区buf,或遇到\n为止(哪个条件先满足就按照哪个条件执行)函数会自动在数据的末尾添加’\n’;
第二个版本与第一个版本的区别在于,第一个版本是读到\n为止,第二个版本是读到delim字符为止,\n或者delim都不会被读入buf,但会被从输入流取走。
这两个函数的返回值就是函数所作用的对象的引用。如果输入流中\n或者delim之前的字符个数达到或者超过bufsize,就会导致读入出错,其结果是:虽然本次读入已经完成,但是之后的读入都会失败。

#include<iostream>
using namespace std;
int main(){
    char c[6];
    cin.getline(c,6);
    cout<<c<<endl;
    cin.getline(c,6,'e');
    cout<<c<<endl;
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

getline()

用于string类的。使用需要包含头文件#include。getline(cin,string,s);接收一个字符串,可以接收空格、回车等。
与cin.getline()的区别:

cin.getline()接收输入字符串的是数组,getline()是string类型
cin.getline()会在数组结尾添加’\0’,getline()不会

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    cout<<str<<endl;
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言
虽然getline()也使用了cin,他们之间的区别在于:
getline()中的结束符,结束之后不存放入缓冲区
cin的结束符结束之后存放在缓冲区。使用cin之后还要继续输入字符,可以使用getline()将多余的字符吃掉

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str;
    cin>>str;
    getline(cin,str);
    cin>>str;
    //getline(cin,str);
    cout<<str<<endl;
    return 0;
}

gets()

char *gets(char *str);
gets()函数存在一些安全问题,容易导致缓冲区溢出。由于无法限制读取的字符数量,只会根据输入行的长度决定读取的字符数量,因此可能会导致输入数据超出目标缓冲区的长度,进而造成缓冲区溢出漏洞。
更安全的替代函数fgets();

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main(){
    char str[5];
    fgets(str,sizeof(str),stdin);
    printf("%s\n",str);
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

getchar()

需要包含#include。
从标准的输入stdin中读取字符。可以从流中取出回车符

#include<iostream>
#include<string>
using namespace std;
int main(){
    string str;
    cin>>str;
    getchar();
    getline(cin,str);
    cout<<str<<endl;
    return 0;
}

每日一题2023.7.19|ACM模式,数据结构与算法之美,c++,算法,数据结构,c语言

A+B问题|

题目描述
你的任务是计算a+b
输入
输入包含一系列的a和b对,通过空格隔开。一对a和b占一行
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
3 4
11 40
样例输出
7
51

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

A+B问题||

题目描述
你的任务是计算a+b,但输入方式有变
输入
第一行是一个整数N,表示后面会有N行a和b,通过空格隔开
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
2
3 4
11 40
样例输出
7
51

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

A+B问题|||

题目描述
你的任务是计算a+b
输入
输入中每行是一对a和b。其中会有一对是结束标志0和0,且该标志不参与计算
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
3 4
11 40
0 0
样例输出
7
51

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

A+BⅣ

题目描述
你的任务是计算若干整数的和
输入
每行的第一个数N,表示后面有N个数。如果N=0时表示输入结束,且这一行不要计算。
输出
每一行数据输出相应的和
样例输入
4 1 2 3 4
5 1 2 3 4 5
0
样例输出
10
15

#include<iostream>
using namespace std;
int main(){
    int N;int a,sum;
    while(true){
        cin>>N;
        if(!N) break;
        sum = 0;
        while(N--){
            cin>>a;
            sum+=a;
        }
        cout<<sum<<endl;
    }
    return 0;
}

A+B问题Ⅴ

题目描述
你的任务是计算两个整数的和
输入
输入包括若干行,每行输入两个整数a和b,由空格分隔。
输出
对于每组输入,输出a和b的和,每行输出后接一个空行
样例输入
2 4
11 19
样例输出
6
空行
30

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

A+B问题Ⅵ

题目描述
你的任务是计算若干整数的和
输入
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。
输出
对于每组输入,输出M个整数的和,每组输出之间输出一个空行。
样例输入
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
样例输出
10
空行
15
空行
6文章来源地址https://www.toymoban.com/news/detail-596163.html

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

到了这里,关于每日一题2023.7.19|ACM模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”

    各位CSDN的uu们你们好呀,今天小雅兰的内容仍然是二叉树和Leetcode每日一题,下面,就让我们进入二叉树的世界吧!!! 这个题目需要重新定义一个函数,函数参数需要有左子树和右子树,题目所给定的函数无法解决问题。 每个不为空的结点,都可以认为是一棵子树的根 

    2024年02月16日
    浏览(33)
  • 二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”

    各位CSDN的uu们你们好呀,今天继续数据结构与算法专栏中的二叉树,下面,让我们进入二叉树的世界吧!!! 二叉树(上)——“数据结构与算法”_认真学习的小雅兰.的博客-CSDN博客 二叉树链式结构的实现 二叉树链式结构的实现 求二叉树的高度 但是这种写法有很大的问题

    2024年02月17日
    浏览(29)
  • [Week 19]每日一题(C++,数学,并查集,动态规划)

    目录 [Daimayuan] T1 倒数第n个字符串(C++,进制) 输入格式 输出格式 样例输入 样例输出 解题思路 [Daimayuan] T2 排队(C++,并查集) 输入格式 输出格式 样例输入1 样例输出1 样例输入2 样例输出2 样例输入3 样例输出3 数据规模 解题思路 [Daimayuan] T3 素数之欢(C++,BFS) 数据规模

    2024年02月02日
    浏览(39)
  • 6-19 数据结构考题 - 链队列

    用链队列作存储结构,实现队列(元素为整型)的基本运算。 链队列的类型定义: typedef int ElemType; typedef struct QNode {     ElemType data;                         struct QNode *next; }QNode; typedef struct {     QNode *front;     QNode *rear; }LinkQueue; 下面给出了  链队列操作  函数的大部分

    2024年04月28日
    浏览(24)
  • 【每日一题Day245】面试题 16.19. 水域大小 | dfs

    你有一个用于表示一片土地的整数矩阵 land ,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。 dfs感染

    2024年02月10日
    浏览(34)
  • MySQL学习Day19——索引的数据结构

    一、为什么使用索引: 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据査找时,首先查看查询条件是否命中某条索引,符合则通过索引査找

    2024年02月21日
    浏览(32)
  • 【每日一题】Leetcode - 19. Remove Nth Node From End of List

    Leetcode - 19. Remove Nth Node From End of List Drawing on the method of finding midpoints in linked lists, use quick slow pointer Finding midpoints in linked lists nothing

    2024年02月12日
    浏览(40)
  • 数据结构 每日一练 :选择 + 编程

    目录 选择 编程 A .   a[0][2*1]     B.  a[1][3]   C.  a[4-2][0]  D.  a[0][2+2] 答案:D 解析:题目给的是一个3行4列的数组,而D选项是 a[0][2+2] = a[0][4],相当于取得是第1行第5列的元素,越界了。需要注意的是数组下表是从0开始的。下标从0开始!下标从0开始!下标从0开始! A. 

    2024年02月09日
    浏览(35)
  • 数据结构:力扣OJ题(每日一练)

    目录 题一:环形链表 思路一: 题二:复制带随机指针的链表  思路一: 本人实力有限可能对一些地方解释的不够清晰,可以自己尝试读代码,望海涵! 给定一个链表的头节点   head  ,返回链表开始入环的第一个节点。  如果链表无环,则返回  null 。 如果链表中有某个节

    2024年02月12日
    浏览(34)
  • 数据结构:力扣OJ题(每日一练)

    示例:         初始化: 初始化队列Q1,Q2; 入栈: 先将要入栈的数据放入为空的队列中,都为空时,放入Q1; 出栈: 当要出栈时,将Q1的数据出列n-1个,此时的Q1就是栈要出栈的数据(每次出栈都进行一次第三步将为不为空的队列数据放n-1个到为空队列中)); 获取栈顶元

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包