2784: 代码格式化(c++)

题目描述

学弟给了学长一份代码,让学长帮忙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;
}

来源/分类

 郑州轻工业大学2020级新生赛  

#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;
}

猜你喜欢

转载自blog.csdn.net/with_wine/article/details/114829892
今日推荐