笔试相关:OJ在线编程常见输入输出练习(C++)

cin将数据存放到temp里面,并且进行好了类型转换,也就是说如果temp是int,那么输入的数据就会转化成int,如果是strin类型,那么就将输入的数据转换成string类型然后存入到temp里面,cin>>输入的数据不包含空格和回车,空格和回车会存入到cin的缓冲区中,如果想拿到输入的空格和回车,通过cin.get()获得。

A+B(1)

要求
输入两个正整数,求两个数的和
输入:
1 5
10 20
输出:
6 30

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

A+B(2)

要求
输入第一行包括一个数据组数t,接下来每行包括两个正整数a,b,输出a+b
输入
2
1 5
10 20
输出
6
30

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(3)

要求
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输入
1 5
10 20
0 0
输出
6
30

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

A+B(4)

要求
输入数据包括多组。每组数据一行,每行的第一个整数为整数的个数n, n为0的时候结束输入。接下来n个正整数,即需要求和的每个正整数。
输入
4 1 2 3 4
5 1 2 3 4 5
0
输出
10
15

int main(){
    
    
    int n;
    while(cin >> n&&n>0){
    
    
        int sum=0, num;
        for(int i=0;i<n;i++){
    
    
            cin >> num;
            sum+=num;
        }
        cout << sum << endl;
    } 
}

A+B(5)

要求
输入的第一行包括一个正整数t, 表示数据组数。接下来t行, 每行一组数据。每行的第一个整数为整数的个数n。接下来n个正整数, 即需要求和的每个正整数。
输入
2
4 1 2 3 4
5 1 2 3 4 5
输出
10
15

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

A+B(6)

要求
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n。接下来n个正整数, 即需要求和的每个正整数。
输入
4 1 2 3 4
5 1 2 3 4 5
输出
10
15

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

A+B(7)

要求
输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,空格隔开。
输入
1 2 3
4 5
0 0 0 0 0
输出
6
9
0

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

字符串排序(1)

要求
输入有两行,第一行n。第二行是n个空格隔开的字符串。
输入
5
c d a bb e
输出
a bb c d e

int main(){
    
    
    int n;
    cin >> n;
    string s;
    vector<string> res;
    for(int i = 0; i < n; ++i){
    
    
        cin >> s;
        res.push_back(s);
    }
    sort(res.begin(), res.end());
    for(auto s : res){
    
    
        cout << s << ' ';
    }
    return 0;
}

字符串排序(2)

要求
多个测试用例,每个测试用例一行。每行通过空格隔开,有n个字符。
输入
a c bb
f dddd
nowcoder
输出
a bb c
dddd f
nowcoder

int main(){
    
    
    string s;
    vector<string> ans;
    while(cin >> s){
    
    
        ans.push_back(s);
        if(cin.get()=='\n'){
    
    
            sort(ans.begin(),ans.end());
            for(auto s:ans){
    
    
                cout << s << " ";
            }
            cout << endl;
            ans.clear();
        }
    }
    return 0;
}

字符串排序(3)

要求
多个测试用例,每个测试用例一行。每行通过,隔开,有n个字符。
输入
a,c,bb
f,dddd
nowcoder
输出
a,bb,c
dddd,f
nowcoder

int main(){
    
    
    string s;
    vector<string> ans;
    char a;
    while(cin.get(a)){
    
    
        if(a!=','&&a!='\n'){
    
    
            s = s + a;
        }
        if(a==','){
    
    
            ans.push_back(s);
            s.clear();
        }
        
        if(a=='\n'){
    
    
            ans.push_back(s);
            s.clear();
            int n = ans.size();
            sort(ans.begin(),ans.end());
            for(int i=0;i<n-1;i++){
    
    
                cout << ans[i] << ",";
            }
            cout << ans[n-1] << endl;
            ans.clear();
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44537258/article/details/115023131
今日推荐