-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoj
41 lines (38 loc) · 1.38 KB
/
oj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
int main()
{
int n,m,i=0,j=0,l,f=0,s=0;
printf("请输入m和n的值.\n");
do
{
scanf("%d %d",&m,&n);
if(m>10||n>10)
printf("mn can");
else break;
}
while(1);
int a[2*m][n];
printf("input");
for(i=0; i<(2*m); i++)
for(j=0; j<n; j++)
{
scanf("%d",&l);
a[i][j]=l;
}
//上面是输入m(行),n(列),生成一个2*m行,n列的矩阵E,在依次按行输入矩阵的值(先输入矩阵A,在输入矩阵B)存入E中 以上代码可以忽视
// 下面是进行运算 A与B对应的行或列(例如 A的第一行与B的第一行 第二行与第二行 第一列与第一列等 )相加全为0 计数s加1 最后输出s的值.
i=0,j=0;
//printf("%d %d %d %d %d %d\n",a[0][0],a[0][1],a[1][0],a[1][1],i,j);
while(i<m) //按行遍历
{ while(j<n) //A的第一行与B的第一行 每个数对应相加判断是否为0 是就标志符f加1
{if((a[i][j]+a[i+m][j])==0)
f++;
j++;}
if(f==n) // 如果对应的一行内为0的个数与该行的数的个数一样(其实就是判断是否都是0) 是就计数s加1 行数加1
s++;
f=0;
i++;
}
printf("%d",s);
return 0;
}