题目描述
学弟给了学长一份代码,让学长帮忙debug,可是这段代码却是这样的:
#include<stdio.h>
int main(){int a,b;int c=a+b;printf("Hello world!\n");return 0;}
这段代码机器能看懂,但是学长看不懂。
这代码有两个问题:没有换行缩进,二元运算符附近没有空格。
显然这是一段未格式化的代码,将其格式化成符合要求的格式。花括号不包含嵌套的情况。
格式要求:
1. 需要换行
2. 四个空格作为一个缩进单位
3. 花括号{不换行,跟在前一个语句之后,但是隔开一个空格。
4. 二元运算符周围没有放空格,因为学弟的代码只包含=,+,-,*,/,%这六个二元运算符
格式化后的代码:
#include<stdio.h>
int main() {
int a,b;
int c = a + b;
printf("Hello world!\n");
return 0;
}
输入
两行可以编译的但是格式不符合的要求的代码,一行为头文件(保证只有一个头文件),一行为主函数代码。代码的问题如上所述,代码长度小于1000。代码中的花括号只包含主函数中的一对。保证代码主函数中有语句。
注意:代码中不包含多余的分号。printf函数内不会出现花括号和二元运算符
输出
满足格式格式要求的代码
样例输入 Copy
#include<stdio.h> int main(){int a, b;a=9900,b=99;int c=a+b;int d=1,e;int ans=a+b+c/d%a*a-89+e;return 0;}
样例输出 Copy
#include<stdio.h> int main() { int a, b; a = 9900,b = 99; int c = a + b; int d = 1,e; int ans = a + b + c / d % a * a - 89 + e; return 0; }
来源/分类
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j;
char s[1000];
char ss[1010];
gets(ss);
gets(s);
puts(ss);
//int l1=strlen(s);//这里可以优化一下
for(i=0;i<strlen(s);i++)
{
if(s[i]=='+'||s[i]=='='||s[i]=='-'||s[i]=='/'||s[i]=='*'||s[i]=='%')
printf(" %c ",s[i]);
else if(s[i]==';')
{
if(s[i+1]=='}')
{
printf("%c\n",s[i]);
}
else
printf("%c\n ",s[i]);
}
else if(s[i]=='{')
printf(" %c\n ",s[i]);
else
printf("%c",s[i]);
}
return 0;
}