虽然每个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;