九度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
#include
using namespace std;
int Rows(int matrics[10][10],int a,int b){
    int rows=0;
    for(int i=0;i         int temp=1;
        for(int j=0;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         int temp=1;
        for(int j=0;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             for(j=0;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             for(j=0;j                 cin>>matrics1[i][j];
            }
        }
        for(i=0;i             for(j=0;j                 cin>>matrics2[i][j];
            }
        }
        mutiply(matrics1,matrics2,row,col);
        int aa=Rows(matrics1,row,col)+Cols(matrics1,row,col);
        cout<     }
    return 0;忘记了写return
}

你可能感兴趣的:(九度OJ)