ACM格式输入2

本文转载自 ACM格式输入(二) | DFSgwb

c++常用的输入输出方法

案例

一维数组:

输入包含一个整数n代表数组长度。
接下来包含n个整数,代表数组中的元素
3
1 2 3

1
2
3
4
5
6
7
8
9
10
11
12
13
int n;
scanf("%d",&n); // 读入3,说明数组的大小是3
vector<int> nums(n); // 创建大小为3的vector<int>
for(int i = 0; i < n; i++) {
cin >> nums[i];
}

// 验证是否读入成功
for(int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl;

若是不限定输入数据的大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vector<int> nums;
int num;
while(cin >> num) {
nums.push_back(num);
// 读到换行符,终止循环
if(getchar() == '\n') {
break;
}
}
// 验证是否读入成功
for(int i = 0; i < nums.size(); i++) {
cout << nums[i] << " ";
}
cout << endl;

二维数组

例如

输出N行,每行M个空格分隔的整数。每个整数表示该位置距离最近的水域的距离。
4 4
0110
1111
1111
0110

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int n,m;
int res[n][m];
//vector<vector<int>>res(n,vector<int>(n));
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
scanf("%d",&res[i][j]);
}
}
// 验证是否读入成功
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;