AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 应用
  • 更多
    • 题解
    • 分享
    • 商店
    • 问答
    • 吐槽
  • App
  • 登录/注册

ACM模式输入输出处理

作者: 作者的头像   醉生梦死 ,  2023-05-24 21:21:21 ,  所有人可见 ,  阅读 62


2


3

输入输出

OJ在线编程常见输入输出练习场

答案参考本文最后

C++

单行不定长输入

while(cin >> x, cin.get() != '\n')

非字符串多行输入

while(n--)

while(cin >> a >> b)

while(cin >> a >> b, a || b)

字符串多行输入

#include <iostream>     // 标准输入输出
#include <string>           
#include <sstream>      // 输入流

string s;

while(getline(cin, s))  // 空白符分隔的不定行输入
{
    stringstream line(s);

    while(line >> s)
}

while(getline(cin, s))  // 逗号分隔的不定行输入
{
    stringstream line(s);

    while(getline(line, s, ','))
}

cin 可用作条件判断

cin >> n 返回 cin

getline(cin, s) 返回 cin

Python

多行输入

python 输入都是 str 类型, 根据需要用 map 进行批量类型转换

# 定行输入 

for _ in range(int(input())):
    l = list(map(int, input().split()[::]))


# 不定行输入

import sys

for line in sys.stdin.readlines()[::]:
    l = list(map(int, line.split()[::]))

for line in sys.stdin:
    l = line.strip().split(',')     # 非空白符分隔时先把前后空白符去掉(主要是换行符)

input() 返回 str

split() 返回 list

map() 返回 iterator

代码参考

C++

A

#include <iostream>

using namespace std;

int main()
{
    int a, b;

    while(cin >> a >>b)
        cout << a + b << endl;

    return 0;
}

B

#include <iostream>

using namespace std;

int main()
{
    int a, b, n;
    cin >> n;

    while(n--)
    {
        cin >> a >> b;
        cout << a + b << endl;
    }

    return 0;
}

C

#include <iostream>

using namespace std;

int main()
{
    int a, b;

    while(cin >> a >> b, a || b)
        cout << a + b << endl;

    return 0;
}

D

#include <iostream>

using namespace std;

int main()
{
    int n;    
    while(cin >> n, n)
    {
        int x, sum = 0;

        while(n--) cin >> x, sum += x;
        cout << sum << endl;
    }

    return 0;
}

E

#include <iostream>

using namespace std;

int main()
{
    int t, n;
    cin >> t;

    while(t--)
    {
        int x, sum = 0;

        cin >> n;
        while(n--) cin >> x, sum += x;

        cout << sum << endl;
    }

    return 0;
}

F

#include <iostream>

using namespace std;

int main()
{
    int n;
    while(cin >> n)
    {
        int x, sum = 0;

        while(n--) cin >> x, sum += x;
        cout << sum << endl;
    }

    return 0;
}

G

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    string s;
    while(getline(cin, s))
    {
        int x, sum = 0;
        stringstream line(s);

        while(line >> x) sum += x;
        cout << sum << endl;
    }

    return 0;
}

H

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

using namespace std;

int main()
{
    int n;
    cin >> n;

    string s[n];

    for(int i = 0; i < n; i++) cin >> s[i];

    sort(s, s + n);

    for(int i = 0; i < n; i++) cout << s[i] << ' ';

    return 0;
}

I

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

using namespace std;

int main()
{
    string s;

    while(getline(cin, s))
    {
        stringstream line(s);

        vector<string> arr;
        while(line >> s) arr.push_back(s);

        sort(arr.begin(), arr.end());

        for(auto &t : arr) cout << t << ' ';
        cout << endl;
    }

    return 0;
}

J

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

using namespace std;

int main()
{
    string s;

    while(getline(cin, s))
    {
        stringstream line(s);

        vector<string> arr;

        while(getline(line, s, ',')) arr.push_back(s);

        sort(arr.begin(), arr.end());

        for(int i = 0; i < arr.size(); i++)
        {
            cout << arr[i];
            if(i != arr.size() - 1) cout << ',';
        }
        cout << endl;
    }

    return 0;
}

Python

A

import sys

for line in sys.stdin:
    print(sum(map(int, line.split())))

B

for _ in range(int(input())):
    print(sum(map(int, input().split())))

C

import sys

for line in sys.stdin.readlines()[:-1]:
    print(sum(map(int, line.split())))

D

import sys

for line in sys.stdin.readlines()[:-1]:
    print(sum(map(int, line.split()[1:])))

E

for _ in range(int(input())):
    print(sum(map(int, input().split()[1:])))

F

import sys
for line in sys.stdin:
    print(sum(map(int, line.split()[1:])))

G

import sys

for line in sys.stdin:
    print(sum(map(int, line.split())))

H

input()

print(' '.join(sorted(input().split())))

I

import sys

for line in sys.stdin:
    print(' '.join(sorted(line.split())))

J

import sys

for line in sys.stdin:
    print(','.join(sorted(line.strip().split(','))))

0 评论

你确定删除吗?

© 2018-2023 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息