acm书中题目 w-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 ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值