zoukankan      html  css  js  c++  java
  • UVa

    给空格子上下左右的互换操作,问最后是怎样的

    注意一行的最后一个若是空格,需要自己加
    注意读取时 操作可能分好多行,一定要读取到 0 为止

      1 #include <iostream>
      2 #include <cstring>
      3 using namespace std;
      4 char map[50][50],op[1000],c,tmp;
      5 int k,t,x,y,cnt; 
      6 bool flag;
      7 void fuc()
      8 {
      9     flag=1;
     10     for(int i=0;op[i]!='0';i++)
     11     {
     12         if(flag==0) break;
     13         else if(op[i]=='A')
     14         {
     15             if(x-1>=0)
     16             {
     17                 tmp=map[x-1][y];
     18                 map[x-1][y]=' ';
     19                 map[x][y]=tmp;
     20                 x--;
     21             }
     22             else flag=0;
     23         } 
     24         else if(op[i]=='B')
     25         {
     26             if(x+1<=4)
     27             {
     28                 tmp=map[x+1][y];
     29                 map[x+1][y]=' ';
     30                 map[x][y]=tmp;
     31                 x++;
     32             }
     33             else flag=0;
     34         }
     35         else if(op[i]=='R')
     36         {
     37             if(y+1<=4)
     38             {
     39                 tmp=map[x][y+1];
     40                 map[x][y+1]=' ';
     41                 map[x][y]=tmp;
     42                 y++;
     43             }
     44             else flag=0;
     45         }
     46         else if(op[i]=='L')
     47         {
     48             if(y-1>=0)
     49             {
     50                 tmp=map[x][y-1];
     51                 map[x][y-1]=' ';
     52                 map[x][y]=tmp;
     53                 y--;
     54             }
     55             else flag=0;
     56         }
     57     }
     58 }
     59 int main()
     60 {
     61     k=1;
     62     while(gets(map[0]))
     63     {
     64         if(map[0][0]=='Z'&&map[0][1]=='') break;
     65         for(int i=1;i<5;i++) gets(map[i]);
     66         for(int i=0;i<5;i++)
     67         {
     68             if(strlen(map[i])!=5)
     69             {
     70                 map[i][4]=' ';
     71                 break;
     72             }
     73         }
     74         cnt=0;
     75         while(c=getchar())
     76         {
     77             if(c<='Z'&&c>='A') op[cnt++]=c;
     78             if(c=='0')
     79             {
     80                 op[cnt++]=c;
     81                 getchar();break;  //0 之后还有一个回车需要读取!!
     82             } 
     83         }
     84         for(int i=0;i<5;i++)
     85             for(int j=0;j<5;j++)
     86                 if(map[i][j]==' ')
     87                 {
     88                     x=i;y=j; break;
     89                 }
     90         fuc(); 
     91         if(k>1) puts("");
     92         printf("Puzzle #%d:
    ",k++);
     93         if(flag==0) puts("This puzzle has no final configuration.");
     94         else 
     95         {
     96             for(int i=0;i<5;i++)
     97             {
     98                 for(int j=0;j<4;j++)
     99                 {
    100                     printf("%c ",map[i][j]);
    101                 }
    102                 printf("%c
    ",map[i][4]);
    103             }
    104         }
    105     }
    106 }
    107 /*
    108 TRGSJ
    109 XDOKI
    110 M VLN
    111 WPABE
    112 UQHCF
    113 ARRBBL0
    114 ABCDE
    115 FGHIJ
    116 KLMNO
    117 PQRS
    118 TUVWX
    119 AAA
    120 LLLL0
    121 ABCDE
    122 FGHIJ
    123 KLMNO
    124 PQRS
    125 TUVWX
    126 AAAAABBRRRLL0
    127 Z
    128 */
    我自倾杯,君且随意
  • 相关阅读:
    基于MATLAB静态目标分割的药板胶囊检测
    基于YCbCr色彩模型的简易肤色识别器
    思考一个问题STM32的
    压力校准仪开发日志-10-21 迪文屏通信命令记录
    迪文屏使用须知
    结构体变量字节填充
    sizeof 的妙用
    结构体内存的对齐方式
    内存对齐
    中国游戏产业走向世界
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5277192.html
Copyright © 2011-2022 走看看