題目鏈接: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;
}