- 验证n是否是完全平方数
亮点:函数floor(x)返回x的整数部分,但浮点数的运算(sqrt)有可能存在误差[不经常,但一定会有]。若由于误差影响,整数1变成0.99999,那么floor(m)==m就会产生误差。
- #include<math.h>
- double m=sqrt(n);
- if(floor(m+0.5)==m)
- printf("%d是完全平方数。 ",m);
- 计算程序所花费的时间
优势:能够清楚的检验程序是否满足比赛时间要求
- #include<time.h>
- printf("Time used=%.2lf ",(double)clock()/CLOCK+PRE_SEC);
- 本机测试时用文件重定向,一旦提交到比赛,就自动“删除”重定向语句
亮点:本机测试时,因为定义了LOCAL变量而使用了重定向,而上传后因为比赛编译命令里没有-DLOCAL选项而不会使用重定向。
- #ifdef LOCAL
- freopen("data.in","r",stdin);
- freopen("data.out","w",stdout);
- #endif
将上面代码置于main函数最上面。编译时用下面的命令[命令中定义了LOCAL]gcc main.c -o main -DLOCAL
- 士大夫