算法竞赛代码规范

虽然每个coder都有自己的编码风格,但是ICPC毕竟是团队比赛,还是有必要遵守一些公认的代码规范,以便交流。

【头文件】

使用万能头文件

#include <bits/stdc++.h>

仅在POJ等不能使用的情况下例外;

【多组输入】

不用

while(scanf("%d",&a)!=EOF)

while(~scanf("%d",&a))

【换行】

使用K&R风格或Java风格 devc++的格式化选项里有,即不要用code::blocks默认的风格

int main()
{
    int a,b;
    while(~scanf("%d%d",&a,&b)){
       printf("%lf\t%lf\t%lf\n",a/b,(double)(a/b),(double)a/b);
    }
    return 0;
}//K&R风格 除了主函数,左大括号不换行,右大括号换行
int main() {
	int a,b;
	while(~scanf("%d%d",&a,&b)) {
		printf("%lf\t%lf\t%lf\n",a/b,(double)(a/b),(double)a/b);
	}
	return 0;
}//Java风格,所有的左大括号不换行,右大括号换行
int main()
{
	int a,b;
	while(~scanf("%d%d",&a,&b))
	{
		printf("%lf\t%lf\t%lf\n",a/b,(double)(a/b),(double)a/b);
	}
	return 0;
}//Allman风格

我们可以看到Java风格的换行方式最为干净,冗余行最少,且右括号直接对齐相应的循环或条件语句,而且《算法竞赛入门到进阶》也是这样推荐的,大佬们也都采用了K&R或Java的对齐方式,如果不习惯请务必适应。至少我写是一定会用Java的换行方式的。 CodeBlocks修改默认格式化方法: Setting->Editor->Source Formatter->style->Bracket style 修改成Java 设置->编辑器->源码格式工具->样式->括号风格

【宏】

不要用宏,const int 和typedef可以代替。 不管是宏常量还是宏函数都容易出问题。

【变量定义】

在离变量最近使用的地方定义。

for(int i=0;i<5;i++)
    a[i]=i*i;
全部评论
江大佬tql
1 回复 分享
发布于 2020-01-30 10:34
规范的格式确实看上去更清晰
点赞 回复 分享
发布于 2021-03-20 23:29
江大佬tql
点赞 回复 分享
发布于 2021-03-20 23:28

相关推荐

11-23 15:33
已编辑
门头沟学院 Java
CUTMR:换账号试试重启推荐算法,我换账号之后回复率还不错,约莫有个20%左右的消息回复率,前几页、主动招呼的HR也开始符合我期望薪资,此前的大号从招呼、回复、前几页的岗位薪资在涨幅30%+以上 用着用着聊着聊着就变成-20%,而且我开通会员之后直接0面试
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务