题意:给出两个同型矩阵A,B(行列数在每组数据第一行给出),判断矩阵A+B全0行和全0列共有多少
个人思路:用三次二重循环:
第一次读矩阵A;
第二次按行优先读矩阵B,同时判断每个元素是否和A对应位置的元素互为相反数(通过flag标记)。
第三次按列优先判断A和B的每一对应列。
#include<stdio.h>
int main()
{
int row,column;
while(scanf("%d%d",&row,&column) != EOF&& row)
{
int ans = 0,flag = 1;
int a[row][column],b[row][column];
for(int i = 0;i<row;i++) // 读A矩阵
for(int j = 0;j<column;j++)
scanf("%d",&a[i][j]);
for(int i = 0;i<row;i++) // 读B矩阵并判断每一行
{
for (int j = 0; j < column; j++)
{
scanf("%d", &b[i][j]);
if (flag && a[i][j] + b[i][j] == 0)
continue;
else
flag = 0;
}
if (flag)
ans++;
flag = 1;
}
for(int i = 0;i<column;i++) // 判断每一列
{
for (int j = 0; j < row; j++)
{
if (flag && a[j][i] + b[j][i] == 0)
continue;
flag = 0;
}
if(flag)
ans++;
flag = 1;
}
printf("%d\n",ans);
}
return 0;
}
京公网安备 11010502036488号