zoukankan      html  css  js  c++  java
  • PTA L3-019 代码排版

    题目: 

    某编程大赛中设计有一个挑战环节,选手可以查看其他选手的代码,发现错误后,提交一组测试数据将对手挑落马下。为了减小被挑战的几率,有些选手会故意将代码写得很难看懂,比如把所有回车去掉,提交所有内容都在一行的程序,令挑战者望而生畏。

    为了对付这种选手,现请你编写一个代码排版程序,将写成一行的程序重新排版。当然要写一个完美的排版程序可太难了,这里只简单地要求处理C语言里的for、while、if-else这三种特殊结构,而将其他所有句子都当成顺序执行的语句处理。输出的要求如下:

    • 默认程序起始没有缩进;每一级缩进是 2 个空格;
    • 每行开头除了规定的缩进空格外,不输出多余的空格;
    • 顺序执行的程序体是以分号“;”结尾的,遇到分号就换行;
    • 在一对大括号“{”和“}”中的程序体输出时,两端的大括号单独占一行,内部程序体每行加一级缩进,即:
    {
      程序体
    }
    • for的格式为:
    for (条件) {
      程序体
    }
    • while的格式为:
    while (条件) {
      程序体
    }
    • if-else的格式为:
    if (条件) {
      程序体
    }
    else {
      程序体
    }

    输入格式:

    输入在一行中给出不超过 331 个字符的非空字符串,以回车结束。题目保证输入的是一个语法正确、可以正常编译运行的 main 函数模块。

    输出格式:

    按题面要求的格式,输出排版后的程序。

    输入样例:

    int main()  {int n, i;  scanf("%d", &n);if( n>0)n++;else if (n<0) n--; else while(n<10)n++; for(i=0;  i<n; i++ ){ printf("n=%d
    ", n);}return  0; }

    输出样例:

    int main()
    {
      int n, i;
      scanf("%d", &n);
      if ( n>0) {
        n++;
      }
      else {
        if (n<0) {
          n--;
        }
        else {
          while (n<10) {
            n++;
          }
        }
      }
      for (i=0;  i<n; i++ ) {
        printf("n=%d
    ", n);
      }
      return  0;
    }

    思路分析:

    Today And Next
  • 相关阅读:
    JAVA程序员面试32问
    在做物流的库存管理系统里,需要注意。。。。。
    在写自动更新程序中出现的问题
    数据库设计中的五个范式
    cPickle / pickle
    python总结1
    python总结2
    汉明距离(Hamming distance)
    python中pickle的用法
    NET面试题
  • 原文地址:https://www.cnblogs.com/yayyer/p/15543154.html
Copyright © 2011-2022 走看看