面试ACM模式: 处理输入输出「C++版本」

1 循环输入两个数字

alt

代码:

#include <iostream>
using namespace std;

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

2 以 0 0 结尾的输入

alt 代码:

#include <iostream>
using namespace std;

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

3 多行输入数字,但是规定数字个数

alt 代码:

#include<iostream>
using namespace std;

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

4 不定长输入数字

alt 代码:

#include<iostream>
using namespace std;

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

用getchar() 来吸收输入的字符,并进行判断

5 输入多行不定个数的字符串

alt 代码:

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

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

注意这里首先是输入需要通过getchar()判断回车字符;同时输出的时候需要注意最后一个单词的后面没有空格

#春招##实习##刷题##c++#
25实习秋招刷题专栏-Java 文章被收录于专栏

针对实习秋招的同学,无论你是零基础入门还是已经在刷题的道路上驰骋的同学。在这里,你都能针对性的提高自己的刷题能力,提升自己对算法题的认知。 本专栏目的在于帮助需要帮助的同学顺利拿到实习以及秋招的offer!

全部评论

相关推荐

4 15 评论
分享
牛客网
牛客企业服务