• [解题报告]Marvelous Mazes


    题目大意

    题目原文:http://uva.onlinejudge.org/external/4/445.pdf

    背景

    题目很简单就是制作一个迷宫,后面字符出现的次数会等于前面出现数字之和,'b'会被空格代替,'!'则是'\n'代替,'*'则不改变。

     

    Sample Input

    1T1b5T!1T2b1T1b2T!1T1b1T2b2T!1T3b1T1b1T!3T3b1T!1T3b1T1b1T!5T1*1T

    11X21b1X
    4X1b1X

    Sample Output

    T TTTTT
    T  T TT
    T T  TT
    T   T T
    TTT   T
    T   T T
    TTTTT*T

    XX   X
    XXXX X

    算法:

    一定要注意的是输入一行,这一行的迷宫就会被输出,而不是等所有的都输入完成才出现迷宫,我一开始就纠结在这里很久。还有这道题也许有人和我一样一看到一大串的字符串就想到用字符串来解决问题,但是将一个个字符拆解下来解决也许会好得多,所以充分利用输入的缓冲区的作用,一个个字符进行读取,并且读取一个输出一个结果,还有这道题让我明白要充分利用c环境中已经有得函数,这样可以提高代码的效率。

    代码:这里附上我的代码,你可以去这里提交你的代码验证你的代码是否正确,

     1 #include<stdio.h>
     2 #include<ctype.h>
     3 int main(void)
     4 {
     5     char ch;
     6     int count=0,i=0;
     7 
     8     while(scanf("%c",&ch)!=EOF)
     9     {
    10         if(isdigit(ch))
    11         {
    12             count += ch - '0';
    13             continue;
    14         }
    15         else if(isupper(ch)||ch=='b'||ch=='*')
    16         {
    17             for(i=0;i <count;i++)
    18             {
    19                 if(ch=='b')
    20                 printf(" ");
    21                 else
    22                 printf("%c",ch);
    23             }
    24             count=0;
    25         }
    26         if(ch=='!'||ch=='\n')
    27         printf("\n");
    28      }
    29     return 0;
    30 }
  • 相关阅读:
    远程桌面 终端服务器超出最大连接数的解决方法
    html a标签中调用js中的方法的方法
    英文励志歌曲经典珍藏
    远程桌面 习惯性注销连接,出事了
    小幽默
    MySQL用户权限
    MyBatis Like 模糊查询
    MVC3控制器方法获取Form数据方法
    MVC 3 Razor中的@helper 语法
    MVC3实现多个按钮提交
  • 原文地址:https://www.cnblogs.com/qisong178878915/p/2913784.html
Copyright © 2020-2023  润新知