当前位置:   article > 正文

笔试ACM模式输入输出练习c++_acm模式练习

acm模式练习


前言

笔试ACM模式下的输入输出联系(C++)
cin用法


1.不知道组数,每组数据个数相同,直接输入多组数据,

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2. 预先知道输入组数,每组数据个数相同,然后输入多组数据

	#include <iostream>
	using namespace std;
	
	int main(){
	    int t, a, b;
	    cin >> t;
	    while(t--){	//for循环也可, for(int i = 0; i < t; ++i)
	        cin >> a >> b;
	        cout << a+ b << endl;
	    }
	    return 0;
	}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3. 输入多组数据,每组数据个数相同,遇到特殊数据停止输入

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

4. 输入多组数据,每组数据个数不定(提前知道每组输入数据个数),遇到特殊数据停止输入

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

int main(){
    int n, num;
   
    while(cin >> n){
        if(n == 0) break;
    int sum = 0;
    while(n--){
        cin >> num;
        sum += num;
    }
        cout << sum << endl;
    }
    return 0;
}
*/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

5. 输入t组数据,每组数据个数不定(但提前知道每组输入数据个数)

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

6. 输入多组数据,每组数据个数不定(但提前知道每组数据个数),

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

7. 输入不定个数的多组数据,数据之间空格隔开, 重点如何换行输出

	#include <iostream>
	using namespace std;
	
	int main(){
	    int num;
	    int sum = 0;
	    while(cin >> num){
	        sum += num;
	        
	        if(cin.get() == '\n') {
	            cout << sum << endl;
	            sum = 0;
	        }
	    }
	    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

8. 输入n个字符串(一行),空格隔开,输出时结尾无空格

//这里注意区分char与string
// 补充:strlen和sizeof的区别:
//sizeof将\0也计算在内,strlen不算在内,遇到\0就停止统计

	#include <iostream>
	#include <cstring>
	#include <algorithm>
	#include <vector>
	using namespace std;
	 
	int main()
	{
	    int N = 0;
	    cin >> N;
	    vector<string> str(N, "0");
	    for (int i = 0; i < N; i++)
	        cin >> str[i];
	     
	    sort(str.begin(), str.end());
	    for (string s : str)
	        cout << s << " ";
	}
/*
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
void Print(const vector<string>& str) {
	for (int i = 0; i < str.size(); ++i) {
		cout << str[i] << ' ';
	}
	//cout << str[str.size() - 1] << endl;
}

int main() {
	int n;
	cin >> n;
	string a;
	vector<string> str;
	while (n--) {
		cin >> a;
		str.push_back(a);
	}
	sort(str.begin(), str.end());
	Print(str);

	system("pause");
	return 0;
}
*/

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48

9. 多行字符串(行数未知),每行字符串个数不定,通过空格隔开,重点在于换行输出

	#include <iostream>
	#include <vector>
	#include <string>
	#include <algorithm>
	using namespace std;
	
	int main(){
	    string s;
	    vector<string> str;
	    while(cin >> s){
	        str.push_back(s);
	        if(cin.get() == '\n'){
	            sort(str.begin(), str.end());
	            for(string i : str){
	                cout << i << ' ';
	            }
	            cout << endl;
	            str.clear();
	        }
	    }
	    return 0;
	}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

10. 输入多组字符串,每组字符串个数不定,通过‘,‘隔开,输出也通过’,'隔开

//getline()的三个参数
//第一个参数表示从哪里读取
//第二个参数表示存入哪里
//第三个参数表示分隔符
//getline(cin,str) 每次从cin得到一行,存入str
//istringstream ss(str) 表示把str存入ss这个流,可作为下一个getline()的第一个参数
// isstringstream用法:
//getline(ss,temp,‘,’)表示每次从ss里读取,遇‘,’就停止,每次存到temp里面

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

void Print(const vector<string>& str){
    for(int i = 0; i < str.size() - 1; i++){
        cout << str[i] << ',';
    }
    cout << str[str.size() - 1] << endl;
}
int main(){
    string s1;
    vector<string> str;
    string s2;
    while(getline(cin, s1)){
        istringstream ss(s1);
        while(getline(ss, s2, ',')){
            str.push_back(s2);
        }
        sort(str.begin(), str.end());
        Print(str);
        str.clear();
    }
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/418967
推荐阅读
相关标签
  

闽ICP备14008679号