题目:
某编程大赛中设计有一个挑战环节,选手可以查看其他选手的代码,发现错误后,提交一组测试数据将对手挑落马下。为了减小被挑战的几率,有些选手会故意将代码写得很难看懂,比如把所有回车去掉,提交所有内容都在一行的程序,令挑战者望而生畏。
为了对付这种选手,现请你编写一个代码排版程序,将写成一行的程序重新排版。当然要写一个完美的排版程序可太难了,这里只简单地要求处理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; }