C语言——推箱子

描述:

 

有一个房间,房间里有一个人P,房间是规格为 n*n的方格,房子内某些位置上有箱子B,有些位置上有障碍物,人处于某一位置,可以选择向右方向前进,但要保证面对的不是墙、障碍物,若面对的是墙或障碍物则无法前进,若人面对箱子但箱子的前面为障碍物或者墙或者箱子,也不能前进,若为箱子并且箱子所面对的不是墙,不是障碍物也不是箱子,即为空格,则可以推动箱子,即人和箱子分别向右移动一个格子。

输入:

 

房间的规格,一个正整数 n(2<=n<=100),占一行,代表矩阵的大小;输入方形矩阵n行n列,由0、1和2组成(其中0代表空地,1代表箱子,2代表障碍物),即房子的地图,输入一对数据row,col(第row行,第col列),表示人所在的位置坐标(保证人所在的位置为空地),以空格隔开,占一行;输入一个整数2,表示向右方向前进(0,1,2,3分别为向左下右上前进)。

输出:

 

"1"表示可以向该方向前进;
"0"表示不能向该方向前进;
输出占一行;

输入样例:

 

 

4 0 0 0 0 0 1 1 0 0 0 1 0 0 2 0 0 2 1 2

 

输出样例:

 

 

1

 

 

答案如下:

#include<stdio.h> int main() {  int n,a[100][100],row,col,i,j,m;       //定义一个数组  scanf("%d",&n);  for(i=0;i<n;i++)  {   for(j=0;j<n;j++)   {    scanf("%d",&a[i][j]);       //输入数组   }  }  scanf("%d%d",&row,&col);  scanf("%d",&m);  if((a[row][col+1]==0&&(col+1)<n)||(a[row][col+1]==1&&a[row][col+2]==0&&(col+2)<n))   {     printf("1\n");     }     else printf("0\n"); }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值