#include<iostream>
using namespace std;
int main()
{
int **p,n,sum=0,temp=0;;
cin>>n;
p=new int *[n];
for(int i=0;i<n;i++)
{
p[i]=new int [n];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>p[i][j];
}
}
while(sum!=n*n)
{sum==0; temp++;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(p[i][j]==2){sum++;}
if(p[i][j]==1)
{
sum++;
if(p[i][j-1]==0&&(j-1)>=0&&(j-1)<n){p[i][j-1]=1;}
if(p[i-1][j]==0&&(i-1)>=0&&(i-1)<n){p[i-1][j]=1;}
if(p[i][j+1]==0&&(j+1)>=0&&(j+1)<n){p[i][j+1]=1;}
if(p[i+1][j]==0&&(i+1)>=0&&(i+1)<n){p[i+1][j]=1;}
}
}
}
}
cout<<temp;
return 0;
}
输入
3
2 0 0
0 1 0
0 0 0
就死了,初学C++的萌新求教
using namespace std;
int main()
{
int **p,n,sum=0,temp=0;;
cin>>n;
p=new int *[n];
for(int i=0;i<n;i++)
{
p[i]=new int [n];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>p[i][j];
}
}
while(sum!=n*n)
{sum==0; temp++;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(p[i][j]==2){sum++;}
if(p[i][j]==1)
{
sum++;
if(p[i][j-1]==0&&(j-1)>=0&&(j-1)<n){p[i][j-1]=1;}
if(p[i-1][j]==0&&(i-1)>=0&&(i-1)<n){p[i-1][j]=1;}
if(p[i][j+1]==0&&(j+1)>=0&&(j+1)<n){p[i][j+1]=1;}
if(p[i+1][j]==0&&(i+1)>=0&&(i+1)<n){p[i+1][j]=1;}
}
}
}
}
cout<<temp;
return 0;
}
输入
3
2 0 0
0 1 0
0 0 0
就死了,初学C++的萌新求教



