题目1001:A+B for Matrices

来源:互联网 发布:最好的c语言编程软件 编辑:程序博客网 时间:2024/05/17 05:52
题目描述:

    This time, you are supposed to find A+B where A and B are two matrices, and then count the number of zero rows and columns.

输入:

    The input consists of several test cases, each starts with a pair of positive integers M and N (≤10) which are the number of rows and columns of the matrices, respectively. Then 2*M lines follow, each contains N integers in [-100, 100], separated by a space. The first M lines correspond to the elements of A and the second M lines to that of B.

    The input is terminated by a zero M and that case must NOT be processed.

输出:

    For each test case you should output in one line the total number of zero rows and columns of A+B.

样例输入:
2 21 11 1-1 -110 92 31 2 34 5 6-1 -2 -3-4 -5 -60
样例输出:
15
来源:

2011年浙江大学计算机及软件工程研究生机试真题

AC代码:

//本题关键在于读懂题意://将两个同型矩阵相加后,统计为0的行数(该行所有元素都为0)和列数#include<stdio.h>#define N 10int matrices[N][N]; //存储矩阵int main() {//freopen("in.txt","r",stdin);int m, n, num;while(scanf("%d %d",&m,&n)!=EOF && m) {int i, j, a;for(i=0; i<m; i++)for(j=0; j<n; j++)scanf("%d",&matrices[i][j]); //读入第一个矩阵for(i=0; i<m; i++) {for(j=0; j<n; j++) {scanf("%d",&a);matrices[i][j] += a; //为了节省空间,直接在原来的矩阵上进行相加}}num = m + n; //假设所有行和列都为0,num用来存储0行和0列总数for(i=0; i<m; i++) {for(j=0; j<n; j++) {if(matrices[i][j] != 0) { //若该行有一个数不为0,则num减一num--;break;}}}for(i=0; i<n; i++) {for(j=0; j<m; j++) {if(matrices[j][i] != 0) { //若该列有一个数不为0,则num减一num--;break;}}}printf("%d\n",num);}return 0;}


1 0
原创粉丝点击