1. 变量不要在重复定义,除非另一个定义在调用函数里。
2. 要注意题上给的范围,测试一下特殊情况,比如大数据,小数据。比如好多题要考虑有关0的情况
3. 涉及到长整形的时候要注意是否还有一些中间变量也会是长整型,不要错误的定义成整型。
4. 看清题意叙述,在哪里加空格以及在哪里加换行(这个虽然不容易犯错,也是得注意的问题),注意数组得大小,不要开得太小。
5. 两个int型特别大的时候相加会出错,因为系统会默认加起来的值也存到int整型里面,此时p>a[n-1]+a[n-2]应写成p-a[n-1]>a[n-2](bestcoder43B题)
6.gets和scanf函数除了空格问题之外还是有区别的,scanf把空格,Tab, 回车都视为结束标志,不会读入他们,后面自动加'\0',所以空格,回车,Tab都在缓冲区,可以用getchar()读取到,但是gets()函数虽然也将回车视为结束标志,但是他们会将回车读入,读到字符串里是'\0',所以,他们就不会存在缓冲区里,也就是说用getchar()读取不到他们了。。。
7.&可以用在参数传递中,一般用于指针的传递,他只是指针的另外一个名字,可以通过它访问变量,,,
8.再重申一遍,用gets()函数的时候一定要慎重,一定要先判断缓冲区里面是否有换行存在,有的话用getchar()去掉
9.点到直线的距离:d = abs(AX0+BY0+C)/sqrt(A*A+B*B),直线方程是:AX+BY+C = 0;
10.认真思考,认真思考,认真思考(重要的事说三遍)这点最重要重要,交代码时一定要有信心
11.判断浮点类型的数是否相等时候不能直接与0比较,要判断精度问题,另外有时候需要用到fabs取绝对值。。
还有就是'\b'好像oj不能用来退格
12.double型变量输入的时候必须用%lf,输出可以用%f和%lf,但是在poj上用g++交的时候必须用%f(我并不知道为什么。。。)还有就是sqrt求平方根函数的参数和返回值都是double型。。
13.sort函数内的参数是(a,a+n)就是把a数组从0到n-1这n个元素按从小到大的顺序排列。需要加上头文件<algorithm>
14
算法竞赛上看到过的,经常忘了怎么写,在这保存一下好了。
输入输出重定向是使用文件最简单的方法,只需要在main函数里面加上两条语句:
freopen("E:/input.txt", "r", stdin);
freopen("E:/output.txt", "w", stdout);
15.求正n边形内接圆的半径公式:r = a/2 * cot(3.1415926/n)(a表示边长,n表示正n边形)