题解 | #A+B for Matrices#
A+B for Matrices
https://www.nowcoder.com/practice/e431b3ae9efa4726b45a659b71abe124
#include <iostream> using namespace std; struct Matrix { int matrix[10][10]; int row, col;//行列 Matrix(int r, int c) { row = r; col = c; } }; int count = 0; Matrix add(Matrix x, Matrix y) { Matrix c(x.row, x.col); for (int i = 0; i < c.row; i++) { for (int j = 0; j < c.col; j++) { c.matrix[i][j] = 0; c.matrix[i][j] += x.matrix[i][j] + y.matrix[i][j]; } } return c; } int GetNum(Matrix x) { count = 0; for (int i = 0; i < x.row; i++) { // 先遍历行 int flag = 1; for (int j = 0; j < x.col; j++) { if (x.matrix[i][j] != 0) { flag = 0; break; } } if (flag == 1) count++; } for (int i = 0; i < x.col; i++) { // 遍历列 int flag = 1; for (int j = 0; j < x.row; j++) { if (x.matrix[j][i] != 0) { flag = 0; break; } } if (flag == 1) count++; } return count; } void printMatrix(Matrix a) { for (int i = 0; i < a.row; i++) { for (int j = 0; j < a.col; j++) { printf("%d ", a.matrix[i][j]); } printf("\n"); } } int main() { int m, n; while (scanf("%d%d", &m, &n) != EOF) { if (m == 0) { break; } Matrix a(m, n); Matrix b(m, n); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { scanf("%d", &a.matrix[i][j]); } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { scanf("%d", &b.matrix[i][j]); } } Matrix ans = add(a, b); printf("%d\n", GetNum(ans)); } return 0; }