九度OJ 题目1001:A+B for Matrices

来源:互联网 发布:ubuntu samba客户端 编辑:程序博客网 时间:2024/05/17 04:56
题目描述:

    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 21 11 1-1 -110 92 31 2 34 5 6-1 -2 -3-4 -5 -60
样例输出:
15

我的答案:


#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;int main(){   //freopen("input.txt","r",stdin);    int m,n,a,i,j,k,p,q,s;//p是0行数,q室0列数,s是行累加和    int A [10][10];    int l [10];//列累加和数组    memset(A,0,sizeof(int)*100);    memset(l,0,sizeof(int)*10);    while(cin>>m && m)    {        cin >> n;        p=0,q=0;//每次2组过后,p,q重置        for(k=0;k<2;k++)//运行两次        {            for(i=0;i<m;i++)//矩阵的行数            {                s=0;                for(j=0;j<n;j++)//矩阵的列数                {                    cin>>a;                    A[i][j]+=a;                    if(k==1)//k=1时,第二次运行                    {                        l[j]+=abs(A[i][j]);                         s=s+abs(A[i][j]);//计算一行的累加和                    }                }                if((k==1)&&(s==0))                p++;            }           }        for(int t=0;t<n;t++)//统计列中的0列        {            if(l[t]==0)            q++;           }        // cout<<"行数"<<p<<endl;                // cout<<"列数"<<q<<endl;                cout<<p+q<<endl;        memset(A,0,sizeof(int)*100);        memset(l,0,sizeof(int)*10);    }    return 0;}


0 0
原创粉丝点击