题目链接:http://ac.jobdu.com/problem.php?pid=1001
题目分析:
题目看起来要耐心,题目写的很难懂,看懂了之后会发现原来是一道非常简单的题目。
首先输入矩阵的行列数,然后输入矩阵的信息,这里要输入两个一样行列数的矩阵,然后将两个矩阵相加,分别计算相加之后的得到的新矩阵的每一行,每一列都为0的个数,然后得到为0个数的总和。
源代码:
#include<iostream> using namespace std; int main() { int i,j; //行列数 int k = 0; //行,列和为0的个数 int sum1 = 0, sum2 = 0; //行的和,列的和 int a1[100][100] = {0}, a2[100][100] = {0};//二维数组保存矩阵信息 while(1) { cin>>i; if (i == 0) { break; //输入0时程序结束 } cin>>j; //输入第一个矩阵 for(int n1 = 0; n1 < i; n1++) { for(int n2 = 0; n2 < j; n2++) { cin>>a1[n1][n2]; } } //输入第二个矩阵 for(int n1 = 0; n1 < i; n1++) { for(int n2 = 0; n2 < j; n2++) { cin>>a2[n1][n2]; } } //计算每一行相加后为0的个数 for(int n1 = 0; n1 < i; n1++) { for (int n2 = 0; n2 < j; n2++) { sum1 = sum1 + a1[n1][n2] + a2[n1][n2]; } if (sum1 == 0) { k++; } sum1 = 0; } //计算每一列相加后为0的个数 for(int n2 = 0; n2 < j; n2 ++) { for (int n1 = 0; n1 < i; n1 ++) { sum2 = sum2 + a1[n1][n2] + a2[n1][n2]; } if (sum2 == 0) { k++; } sum2 = 0; } cout<<k<<endl; k = 0; } return 0; }