hukkk @ 2021-04-17 18:29:57
#include<bits/stdc++.h>
using namespace std;
int Map[40][40];
int main()
{
int n,flag=0;
scanf("%d",&n);
int f1=0,f2=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>Map[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(f1&&Map[i][j]==1)
{
f2=j;
}
if(!f1&&Map[i][j]==1)
{
f1=j;
}
if(f1&&f2==f1+1)
{
f2=0;
f1=j;
}
if(f1&&f2)
{
for(int k=f1+1;k<f2;k++)
{
Map[i][k]=2;
}
f1=f2;
f2=0;
}
}
f1=0;
f2=0;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
printf("%d ",Map[i][j]);
}
printf("\n");
}
return 0;
}
兄弟们能帮我看看哪里错了吗
by Argon_Cube @ 2021-04-17 18:34:06
这都能过
by hukkk @ 2021-04-17 20:19:18
@Unnamed_Cube 兄弟知道哪有问题吗
by happywhite1991 @ 2021-07-05 00:10:25
@hukkk 大兄弟 你这意思是不是一行里,把一中间的0都变2,比如00010011→00012211 这有个问题 万一他是010010010呢?