## 算法笔记阅读笔记 * cin 和 cout 比 scanf 和 printf 消耗时间多 * 尽量使用 C++ ,C++向下兼容 C * 浮点型建议使用 double , double 输入是 scanf("%lf", &d), 输出是 printf("%f", d) * 字符常量 char c , 输入 scanf("%c", &c), 输出 printf("%c", c), 字符常量要用单引号 * 字符串常量可以用字符数组保存, char str[20] , 输入 scanf("%s", str), 输出 printf("%s", str) * scanf 的 %c 格式可以读入空格和换行, %s通过空格或换行来识别一个字符串的结束 * printf("%0md") printf("%.0mf") * 强制类型转换格式 (新类型名)变量名 * const定义常量 const double a = 1.12 * 条件运算符 A ? B : C * getchar 和 putchar 输入/输出单个字符, getchar 可以识别读入换行符, * gets用来输入一行字符串(注意:gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要使用gets,需要先用getchar接受整数后的换行符),puts用来输出一行字符串,并紧跟一个换行。 * math 函数, fabs(double x)、floor(double x)、ceil(double x)、pow(double r, double p)、sqrt(double x)、sin()\cos()\tan()\asin()\acos()\atan()、round(四舍五入) * memset(数组名,值,sizeof(数组名)); 赋0、-1值 * 字符数组最后要有'\0'结束 * string.h头文件 strlen()、strcmp()、strcpy()、strcat() * sscanf(str, "%d", &n) 从左到右、sprintf(str, "%d", n) 从右到左 * 函数中定义一个比较大的数组时,做好使用全局变量 * 以数组作为函数参数时,可直接修改数组中的元素 * 指针 * 结构体 * while(scanf("%d", &n) !=EOF)、while(scanf("%s", str != EOF) 、while(gets(str) != NULL) * 如果需要使用 PI ,可以 定义 const pi = acos(-1)