《算法笔记》非常适合计算机上机考试,对于数据结构水过的大三计科狗更像是一个重新学习的机会。
一、基本数据类型
1、整型:
(1)int占用32比bit,在算法测试中,绝对值在10^9范围以内的整数都可以定义成int型。
(2)长整型long long,占用64bit,题目要求整数取值超过2147483647则需要使用。当long long赋值大于2^31-1的初值,需要在后面加LL,否则编译错误(codeblocks好像没毛病)。
2、浮点型
(1)单精度float:6~7位精度,在精度要求高的题目里面不适用。
(2)双精度double:15~16位精度,比较常用,以后碰到浮点型的数据就用double。
3、字符型
(1)小写字母比大写字母大32。(%c是C语言中char的输出格式)
(2)转义字符:
\n:换行;
\0:代表空字符NULL,ASCII码为0非空格。
4、布尔型
5、强制类型转换
6、符号常量和const常量
(1)#define pi 3.14
(2)const double pi=3.14
(3)define可以定义任何语句或片段,宏定义不能随便用,尽量不能使用宏定义来做除了定义常量以外的事情,除非给任何地方加上括号
7、自增运算符
i++:先使用i再将i加1
++i:先将i加1再使用i
8、位运算符
比如左移、右移、与、或、异或、取反
程序中个比较大的数可以设置成(1<<31)-1(注意:必须加括号,位运算优先级比算数运算低)
二、顺序结构
1、赋值表达式
2、输入输出语句
(1)在scanf中,除了char数组整个输入的情况不加&之外,其他变量类型都需要加&
(2)scanf对其他格式符(%d)的输入是以空白符(空格、tab)为结束判断标志的
(3)scanf的%c格式可以读入空格跟换行
3、getchar和putchar输入输出字符
getchar用于输入单个字符,putchar用来输出单个字符,使用scanf不便的场合使用getchar输入字符。值得注意的是,getchar可以识别换行符。
4、常用math函数
数学函数的使用需要在程序开头加math.h
(1)fabs(double x):取绝对值
(2)floor(double x) ceil(double x):向下取整和向上取整
(3)power(double r, double p):返回r^p
(4)round(double x):将double型变量x四舍五入
三、选择语句
1、if语句
if(n)==if(n!=0)
if(!n)==if(n==0)
两者等价,是一种简化的写法