一、格式控制符
1.格式控制符的形式
% [-] [0] [m/m.n] [l/h] 格式控制符
其中[ ]里面的内容是可选的
0:当规定输出数据的宽度时,所输出数据实际的宽度小于规定的宽度,则在左边用“0”补齐。
m/m.n:m规定了输出数据的宽度(位数),若数据实际的宽度大于m,则突破m的限制全部输出,反之, 将数据全部输出之后用空格进行左补齐;对于实数n是指小数点后的位数,若n小于小数点后实际的位数,则按四舍五入原则进行截取;对于字符串,n表示从左至右截取的字符个数。
l/h:l表示长整型数据(可用于%ld。%lo,%lx,%lu),以及double型数据(%lf或%le);h表示短整型数据(可用于%hd。%ho,%hx)。
2.格式控制符及其功能(以输出为例)
%u:用来输出无符号的十进制整数(包括char类型)
%o:用来输出无符号的八进制整数
%x:用来输出无符号的十六进制整数
%c:用来输出单个字符
%s:用来输出一个字符串
%f:用来输出小数形式的十进制浮点数(输入时小数形式和指数形式都可以识别)
%e:用来输出指数形式的十进制浮点数(输入时小数形式和指数形式都可以识别)
%g:用来输出指数形式和小数形式两者中较短的十进制浮点数(输入时小数形式和指数形式都可以识别)
二、常用头文件
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#include <iomanip.h> //参数化输入/输出
#include <iostream.h> //数据流输入/输出
#include <limits.h> //定义各种数据类型最值常量
#include <locale.h> //定义本地化函数
#include <math.h> //定义数学函数
#include <stdio.h> //定义输入/输出函数
#include <stdlib.h> //定义杂项函数及内存分配函数
#include <string.h> //字符串处理
#include <strstrea.h> //基于数组的输入/输出
#include <time.h> //定义关于时间的函数
#include <wchar.h> //宽字符处理及输入/输出
#include <wctype.h> //宽字符分类
三、算法竞赛注意事项㈠
①在算法竞赛中, 输入前不要打印提示信息。输出完毕后应立即终止程序,不要等待用户按键,因为输入输出过程都是自动的,没有人工干预。
②在算法竞赛中不要使用头文件conio.h ,包括getch()、clrscr()等函数。
③在算法竞赛中,每行输出均应以回车符结束,包括最后一行。除非特别说明,每行的行首不应有空格,但行末通常可以有多余空格。另外,输出的每两个数或者字符串之间应以单个空格隔开。
④尽量用const关键字声明常数。
⑤scanf中的占位符和变量的数据类型应一一对应,且每个变量前需要加“&”符号。
⑥短路算法可以减少运算,当 && 碰到值为0时发生短路,当 || 碰到值为1时发生短路。
⑦多数算法竞赛采用黑盒测试,即只考查程序解决问题的能力,而不关心采用了什么方法。