作者:重羽玉婷018 | 来源:互联网 | 2023-09-17 12:06
题目描述:
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 2
1 1
1 1
-1 -1
10 9
2 3
1 2 3
4 5 6
-1 -2 -3
-4 -5 -6
0
样例输出:
1
5
我的代码:
#include
using namespace std;
int main()
{
int rows,columns;
int i,j;
bool isZero=true ;
while (cin>>rows)
{
if (rows==0) break ;
else {
cin>>columns;
if (rows<=10||columns<=10){
int **p =new int*[rows];
int **s =new int*[rows];
for (i=0;i p[i]=new int[columns] ;
for (i=0;i {for (j=0;j cin>>p[i][j];
}
for (i=0;i s[i]=new int[columns] ;
for (i=0;i {for (j=0;j cin>>s[i][j];
}
for (i=0;i {for (j=0;j s[i][j]=p[i][j]+s[i][j];
}
int count=0;
for (i=0;i { isZero=true ;
for (j=0;j {if (s[i][j]!=0)
{ isZero=false;
break;
}
}
if (isZero)
count++;
}
for (j=0;j { isZero=true ;
for (i=0;i {if (s[i][j]!=0)
{ isZero=false;
break;
}
}
if (isZero)
count++;
}
cout< delete p[columns];
delete p;
}
}}
return 0;
}
但是出现runtime error 求优化
1 个解决方案