Buildings
Problem Description
We divide the HZNU Campus into NM grids. As you can see from the picture below, the green grids represent the buidings. Given the size of the HZNU Campus, and the color of each grid, you should count how many green grids in the NM grids.
Input
Standard input will contain multiple test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
The first line of each test case contains two integers n and m(1<=n,m<=100), the size of the campus. Then follow n lines, each line containing m integers. The j-th integer in the i-th line is the color of that grid, 0 stands for white color, while 1 stands for green.
Output
Results should be directed to standard output. For each case, output an integers T, the total green grids in the N*M size campus.
Sample Input
2
2 2
1 1
0 0
3 3
1 0 1
0 0 1
1 1 0
Sample Output
2
5
- 定义动态二维数组
方法一:使用new
int m,n;
cin>>m>>n;
int **data=new int*[m];
for(int i=0;i<m;i++){
data[i]=new int[m];
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>data[i][j];
}
}
方法二:使用vector
cin>>n>>m;
vector<vector <int> >a(n);
for(int i=0;i<n;i++){
a[i].resize(m);
}
Code:
//定义动态二维数组,计算二维数组中1 的个数
#include<iostream>
using namespace std;
int main() {
int t,n,m,count;
cin >> t;
while (t != 0) {
t--;
count = 0;
cin >> n >> m;
if (n < 1 || n>100 || m < 1 || m>100) return 0
int** data = new int* [n];//定义动态二维数组
for (int i = 0; i < n; i++) {
data[i] = new int[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> data[i][j];
if (data[i][j] == 1) count++;
}
}
cout << count << endl;
}
}
还没有评论,来说两句吧...