• 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 */
    我自倾杯,君且随意
  • 相关阅读:
    Mysql锁机制介绍
    开启Mysql慢查询来优化mysql
    开启mysql慢查询日志并使用mysqldumpslow命令查看
    MySQL MyISAM/InnoDB高并发优化经验
    UIPageControl
    UIPikerView的属性
    UIScrollView
    UISement属性
    UISlide属性
    UISwitch
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5277192.html
Copyright © 2020-2023  润新知