1.整数值用%d输出,实数用%f输出
2.整数/整数=整数
3.在算法竞赛中,每行输出均应以回车符输出,每输出两个数或字符应该以空格隔开。
4.逻辑运算符都是短路运算符
5.sin,cos函数的参数是弧度值=角度值除以180乘以π
6.判断闰年 能整除4但不能整除100 ||能整除400
7.int的取值范围-2147483648~2147483647(32位)
8.double的范围10-307-10308
9.逻辑运算符结合方向自左向右,!高于&&和||
10.为了减小浮点数的误差floor(x)会写成floor(x+0.5)
11.注意程序中间的溢出
12.计算完取余(时间太久)可以每步取余
13.取后一位=%10,后两位=%100,后n位=%10n
14.程序运行时间time.h,clock()/CLOCKS_PER_SEC
15.变量在未赋初值前的值等于1
16.把输入输出用文件保存,输入输出重定向
freopen(“input.txt”,”r“,stdin);
freopen(“output”,”w”,stdout);
17.可以使用条件编译指令,重要的测试应该加注释而非删掉
18.偌需要文件输入输出,但不能用重定向:先声明变量FILE *fin,*fout,把scanf改为fscanf,第一个参数fin,把print改为fprint,第一个参数fout,最后fclose()
19.多组数据程序中,可能会出现:计算为一组后某些变量没有重置,而导致错误
20.韩信点兵的算法:3,5,7,排队公倍数105,三人一排的余数 乘以70(5和7的倍数,除三余1),五人一排的余数乘以21.,七人一排15。(三人同行七十稀,五树梅花二十一枝,七子团圆正半月,除百零五便得知)
21.scanf读进多个数据,要用%d%d%d,而非%d,%d,(不带逗号)
22.读取文件,按case输出不太会
23.比较大的数组尽量声明在main函数之前,否则程序可能无法成功运行。
24.数组可以用来表示一组sth是否被使用,状态的差别。
25.可以设置一个标志量f,除了数组第一个意外都输出空格。if(first){first=0;} else{printf(“ “);}
26.1变0,0变1,可以用异或,或者!
27. 蛇形填数,矩阵不动,将轨迹的运动规律放在要改动的那一格的坐标上。
28. 打印七行不一定要7个printf,可以用\n
29.strchr()字符串中查找单个字符
30.使用fgetc(fin)可以从打开的文件fin中读取一个字符,一般情况下应当在检查它不是EOF后转化成char,从标准输入读取一个字符可以用getchar,等价于fgetc(stdin),第二种方法使用fgets(buf,maxn,fin)读取完整的一行,读到\n停止