码迷,mamicode.com
首页 > 编程语言 > 详细

算法入门心得

时间:2015-04-06 20:14:05      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

最近看了刘汝佳写的算法入门经典  感觉自己的基础实在太烂了  所以总结了一些我们比较容易犯的错误给大家看看(大牛就不要看了O(∩_∩)O)

1.浮点数:两个整数计算的是浮点数的时候一定要把整数先化为浮点数  5-0.1计算机先把5变5.0之后再进行计算的

2.异或运算:这个是个很神秘的东西如果要在一个数组中找一个只有一个的数那么就可以用异或了 异或也可以用在两个数的交换a = a^b; b = a ^ b; a = a ^ b;就实现转换了

自己异或自己等于0;

3.逻辑运算符都是短路运算符a||b如果a为真那么就不计算后面的了

4我相信现在一定有人不知道int的范围大概是20亿多

5.输出1.0/0.0和0.0/0.0是不会报错也不会运行不了了  但是1/0会崩的 用\\n输出\n用%%d输出%d

6.doublt天生保存六位小数,float: 1bit(符号位) 8bits(指数位) 23bits(尾数位)double:1bit(符号位) 11bits(指数位) 52bits(尾数位)

7.!的优先级是最高的||和&&的优先级是一样的

8.看看余弦的表达式:cos(x/180*M_PI)

9.floor(x)求x的整数部分不过要写成这样子floor(x + 0.5)怕有误差

10.这个是我纠结了一晚上的错误if(i = 1)大家应该看出来什么错误了 里面一定要是两个等号”==“

11.25的阶乘后面有六个0

12.(double)s/n可以直接输出double型的

13.printf("time used = %.2lf",(double)CLOCK()/CLOCKS_PER_SEC);输出程序的运行时间需要用到#include<time.h>头文件

14.从数组a复制k个元素到数组b     memcpy(b,a,sizeof(int) * k)     int 可以改成double

15.assert(x >= 0)如果x<0那么程序就会异常结束   这个东西通常用来检验函数的返回值的  需要用到assert.h

16.C语言用调用栈来描述函数之间的调用关系

17.每个变量在内存中的第一个字节的地址为变量的地址

18.   .exe文件有三部分组成 正文段:存储指令   数据段:存储已经初始化的全局变量   bss段:存储未赋值的全局变量所需的空间

19.段溢出:每次递归调用都会往栈里面增加一个栈帧,久而久之就越界了。  这也是为什么大数组开在main之外了   因为如果大数组如果是局部变量的话 那么一定会引起段溢出

20.函数执行后将释放局部变量的地址。

21.矩阵问题    矩阵左斜线上面的y - x是相同的  右斜线上面的x+y是相同的

就这么多了 持续更新

算法入门心得

标签:

原文地址:http://www.cnblogs.com/zhanyage110/p/4396377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!