记录下我曾经犯过的错误,时刻提醒着自己(也包括一些小技巧,未完,待续……)

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边形)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值