新手启示者
给一个M*N的矩阵,矩阵元素的值为0或者1,要求重置矩阵,若某列存在为1的元素,则将整列元素重置为1,输出重置后的矩阵。
输入描述 Input Description
输入两个正整数M,N,表示这个矩阵有M行N列。
接下来是M行N列只包含0和1的矩阵。
输出描述 Output Description
输出重置后的矩阵。
样例输入 Sample Input
4 4 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
样例输出 Sample Output
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
数据范围及提示 Data Size & Hint
1 ≤M,N≤ 10
汪宇航在2021-04-25 15:55:49追加了内容
@李瑞曦 @曹博扬
@赵逸凡 @董宇昊
@陈曦 @汪恺恒
@张帆 @王泽宇
汪宇航在2021-04-25 16:56:23追加了内容
@
汪宇航在2021-04-25 17:07:07追加了内容
#include <bits/stdc++.h>
using namespace std;
int main(){
int x,y;
bool a[101][101];
int b[101];
cin>>x>>y;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
cin>>a[i][j];
if(a[i][j]==1)b[i]=j;
}
}
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
if(b[i]!=0)
a[i][b[i]]=1;
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
...
资深守护
I am coming again.
核心代码:
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]){
for(int k=1;k<=n;k++){
a[k][j]=1;
}
}
}
}