C++输入输出练习

???? C++输入输出

目的:解决ACM模式下的输入输出问题
题目来源:牛客OJ练习场

10年积累的成都网站制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有叙永免费网站建设让你可以放心的选择与我们合作。

第一题:计算多组a+b

输入描述:输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。
输出描述:输出a+b的结果

示例
输入:
1 5
10 20
输出:
6
30

代码:

#include 

using namespace std;

int main() {
    int a, b;
    while (cin >> a >> b) {
        cout << a + b << endl;
    }
    return 0;
}

第二题:告知多少组,计算多组a+b

输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出描述:输出a+b的结果

示例
输入:
2
1 5
10 20
输出:
6
30

代码:

#include 

using namespace std;

int main() {
    int n, a, b;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a >> b;
        cout << a + b << endl;
    }
    return 0;
}

第三题:如果a、b都不为0,计算多组a+b

输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输出描述:输出a+b的结果

示例
输入:
1 5
10 20
0 0
输出:
6
30

代码:

#include 

using namespace std;

int main() {
    int a, b;
    while (cin >> a >> b && a != 0 || b != 0) {
        cout << a + b << endl;
    }
    return 0;
}

第四题:计算一系列数的和(第一个数为0时结束)

输入描述:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果

示例
输入:
4 1 2 3 4
5 1 2 3 4 5
0
输出:
10
15

代码:

#include 

using namespace std;

int main() {
    int n;
    while (cin >> n && n != 0) {
        int arr[n];
        int sum = 0;
        for (int i = 0; i < n; i++) {
            cin >> arr[i];
        }
        for (int num : arr) {
            sum += num;
        }
        cout << sum << endl;
    }
    return 0;
}

第五题:计算一系列数的和(告知一共有几组)

输入描述:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果

示例
输入:
2
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15

代码:

#include 

using namespace std;

int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int m;
        cin >> m;
        int arr[m];// 用作记录用,记录一下c++创建的数组数据,如果题目需要就可以用,实际这里并没有什么用的hhh;
        int sum = 0;
        for (int i = 0; i < m; i++) {
            cin >> arr[i];
            sum += arr[i];
        }
        cout << sum << endl;
    }
    return 0;
}

第六题:计算一系列数的和(不告知几组和何时结束,每一组第一个数为一共本组几个数)

输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果

示例
输入:
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15

代码:

#include 

using namespace std;

int main() {
    int n;
    while (cin >> n) {
        int arr[n];
        int sum = 0;
        for (int i = 0; i < n; i++) {
            cin >> arr[i];
            sum += arr[i];
        }
        cout << sum << endl;
    }
    return 0;
}

第七题:计算一系列数的和(一行一组,不告诉一组几个,需要判断)

输入描述:
输入数据有多组, 每行表示一组输入数据。
每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果

示例
输入:
1 2 3
4 5
0 0 0 0 0
输出:
6
9
0

代码:

#include 

using namespace std;

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

第八题:字符串排序(只排一组,告诉有几个)

输入描述:
输入有两行,第一行n
第二行是n个空格隔开的字符串
输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格

示例
输入:
5
c d a bb e
输出:
a bb c d e

代码:

#include 
#include 
#include 
#include 

using namespace std;

int main() {
    int n;
    cin >> n;
    vector vec(n);
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        vec[i] = s;
    }
    sort(vec.begin(), vec.end());//用这个排序就行
    for (string s: vec) {
        cout << s << " ";
    }
    return 0;
}

第九题:字符串排序(排列多组,有结束符)
输入描述:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100
输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

示例
输入:
a c bb
f dddd
nowcoder
输出:
a bb c
dddd f
nowcoder

代码:

#include 
#include 
#include 
#include 

using namespace std;

int main() {
    vector vec;
    string s;
    while (cin >> s) {
        vec.emplace_back(s);
        if (cin.get() == '\n') {
            sort(vec.begin(), vec.end());
            for (int i = 0; i < vec.size() - 1; i++) cout << vec[i] << " "; 
            cout << vec[vec.size() - 1] << endl;//最后一个元素不带空格(本题也可以带空格),直接换行
            vec.clear();
        }
    }
    return 0;
}

第十题:字符串排序(输入用逗号分开)

输入描述:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100
输出描述:
对于每组用例输出一行排序后的字符串,用’,'隔开,无结尾空格

示例
输入:
a,c,bb
f,dddd
nowcoder
输出:
a,bb,c
dddd,f
nowcoder

采用substr函数

代码:

#include 
#include 
#include 
#include 

using namespace std;

int main() {
    string s;
    while (cin >> s) {
        vector vec;
        int cur = 0;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == ',') { //遇到","就拷贝部分字符串
                vec.emplace_back(s.substr(cur, i - cur));
                cur = i + 1;
            }
        }
        vec.emplace_back(s.substr(cur, s.size() - cur));
        //排序输出
        sort(vec.begin(), vec.end());
        for (int i = 0; i < vec.size() - 1; i++) {
            cout << vec[i] << ",";
        }
        cout << vec[vec.size() - 1] << endl;
    }
    return 0;
}

第十一题:一个很长的提示

依然是求a+b,不过要用long int/ long long int! 看数据量范围
这个题很明显告诉我们:请先不要怀疑系统和题目,一定要检查自己的代码!

代码:

#include 

using namespace std;

int main() {
    long long a, b;
    while (cin >> a >> b) {
        cout << a + b << endl;
    }
    return 0;
}

本文名称:C++输入输出练习
文章URL:http://myzitong.com/article/dsoijhd.html