九度OJ

这个题的意思是:两个矩阵A,B,相加后得到矩阵C,求C中行或列全为0的总和。。

样例输入:
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<iostream>
#include<cstdio>
using namespace std;
int Rows(int matrics[10][10],int a,int b){
    int rows=0;
    for(int i=0;i<a;i++){
        int temp=1;
        for(int j=0;j<b;j++){
            if(matrics[i][j]!=0){
                temp=0;
                break;
            }
        }
        rows+=temp;
    }
    return rows;
}
int Cols(int matrics[10][10],int a,int b){对于一维数组来说,数组作为函数参数传递,相当于传址,而不是传值,会改变数组元素的值
    int cols=0;
    for(int i=0;i<b;i++){
        int temp=1;
        for(int j=0;j<a;j++){
            if(matrics[j][i]!=0){
                temp=0;
                break;
            }
        }
        cols+=temp;
    }
    return cols;
}
void mutiply(int matrics1[10][10],int matrics2[10][10],int a,int b){高维数组第一个 可以不写大小,其他的必须写[][10]
        int i=0,j=0;
        for(i=0;i<a;i++){
            for(j=0;j<b;j++){
                matrics1[i][j]=matrics1[i][j]+matrics2[i][j];
            }
        }
}
int main(){    
    int row=0,col=0;
    while(scanf("%d",&row)!=EOF,row!=0){     //while(scanf("%d",&row)!=0){这样写报错 ERROR: Output Limit Exceed

也可以写成 whilescanf("%d",&row)!=EOF,row)
        int matrics1[10][10],matrics2[10][10];
        cin>>col;
        int i=0,j=0;
        for(i=0;i<row;i++){
            for(j=0;j<col;j++){
                cin>>matrics1[i][j];
            }
        }
        for(i=0;i<row;i++){
            for(j=0;j<col;j++){
                cin>>matrics2[i][j];
            }
        }
        mutiply(matrics1,matrics2,row,col);
        int aa=Rows(matrics1,row,col)+Cols(matrics1,row,col);
        cout<<aa<<endl;
    }
    return 0;忘记了写return
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值