acm书中题目 w-23

来源:互联网 发布:真柏树桩淘宝价格 编辑:程序博客网 时间:2024/06/04 19:23

题目大概:

输入一个矩形的长和宽,然后输入矩形状的由1和0构成的数,若这些数不全为1,并且这些数中的0不挨着0,就输出yes,否则输出no。当输入0 0时结束输入。

思路:

用二维数组储存数据,用两个数控制题目中的两个要求,满足则输出yes,反之no。

感想:

做这个题,思维要严谨,把可能的包含在内,不可能的也不能包含进去。

代码:

#include <iostream>


using namespace std;

int main()
{int n,m;
int a[10][10];
while(cin>>n>>m)
{if(n==0&&m==0)break;
for(int i=0;i<n;i++)
{for(int t=0;t<m;t++)
{cin>>a[i][t];

}
}
int k=0,l=0;
for(int i=0;i<n;i++)
{for(int t=0;t<m;t++)
{if(a[i][t]==0){
if(i-1>0)if(a[i-1][t]==0)k++;
  if(i+1<n)if(a[i+1][t]==0)k++;
   if(t-1>0)if(a[i][t-1]==0)k++;
   if(t+1<m)if(a[i][t+1]==0)k++;
}
if(a[i][t]!=1)l++;
}
}
if(k)cout<<"No"<<endl;
if(!k)if(l)cout<<"Yes"<<endl;
if(!l)cout<<"No"<<endl;

}


      return 0;
}
0 0
原创粉丝点击