本题判断一个矩阵不能全为1,也不能有两0相邻,否则输出no,我在这题并未想到什么利用stl的好法子,所以当水题水了,注意再多10*10,所以我空最上,下,左,右行,并且一定要初始化全为1.
#include<iostream>
using namespace std;
int main()
{
int a[12][12], k=2,t=1,m,n;
while(2)
{
cin>>m>>n;
if(m==0&&n==0){break;}
for(int i=0;i<=11;i++)
{for(int j=0;j<=11;j++)
{a[i][j]=1;}}//初始化全为1
for(int i=1;i<=m;i++)
{for(int j=1;j<=n;j++)
{ cin>>a[i][j];//输入
if(a[i][j]==0){t=2;}
}}
for(int i=1;i<=m;i++)
{for(int j=1;j<=n;j++)
{
if(a[i][j]==0)
{
if((a[i+1][j]==0)||(a[i-1][j]==0)||(a[i][j+1]==0)||(a[i][j-1]==0)){k=1;}//逐个判断
}
}
}
if(t==1||k==1)
{cout<<"No"<<endl;}
else
{cout<<"Yes"<<endl;}
t=1;k=2;归为原值
}
}