算法笔记(1) —— 基本数据类型

数据类型 取值范围 大致范围 占用大小 输入格式 输出格式
int $- 2^{31}$ ~ $ +(2^{31} - 1)$ $- 2 × 10^9$ ~ $+2 × 10^9$ 4Byte scanf(“%d”, &d); printf(“%d”, d);
long long $- 2^{63}$ ~ $ +(2^{63} - 1)$ $- 9 × 10^{18}$ ~ $+9 × 10^{18}$ 8Byte scanf(“%lld”, &lld); printf(“%lld”, lld);
float $- 2^{128}$ ~ $ +2^{128}$ 实际精度6~7位 4Byte(符号1位,指数8位,尾数23位) scanf(“%f”, &f); printf(“%f”, f);
double $- 2^{1024}$ ~ $ +2^{1024}$ 实际精度15~16位 8Byte(符号1位,指数11位,尾数52位) scanf(“%lf”, &lf); printf(“%f”, f);
char $-128$ ~ $+127$ $-128$ ~ $+127$ scanf(“%c”, &c);字符串:scanf(“%s”, str); printf(“%c”, c); 字符串:printf(“%s”, str);
bool 0 or 1(false or true) 0 or 1(false or true)
  1. 小写字母比大写字母的ASCII码值大32

  2. 由于数组名称本身就代表了数组第一个元素的地址,所以scanf中,char字符串数组整个输入的情况下不需要加取地址运算符

  3. 在scanf中,%c格式是可以读入空格和换行的,其他格式的输入是以空格和换行作为读入结束的标志;

  4. 常用输出格式:%0md(使不足m位的int型变量以m位进行右对齐输出,高位用0补齐)、%.mf(使浮点数保留m位小数输出,服从“四舍五入五成双”的规则);

  5. getchar和putchar分别用来输入和输出单个字符(包括换行符),gets和puts分别用来输入和输出一行字符串

  6. gets识别换行符\n作为输入结束,因此scanf完一个整数后,如果要使用gets,需要先用getchar接收整数后的换换行符;

  7. char字符串数组的末尾都有一个空字符\0,以表示存放的字符串的结尾,结束符\0的ASCII码为0,即空字符NULL,占用一个字符位,因此创建char字符串数组时字符数组的长度比实际存储的字符串长度至少多1;

  8. 空字符\0和空格不是一个东西,空格的ASCII码为32;

  9. 常用 string 函数(使用时要在程序开头加上 string.h 头文件):

    (1). strlen(str) : 该函数用于返回字符数组中第一个\0前的字符个数;

    (2). strcmp(str1, str2) : 该函数用于返回两个字符串大小的比较结果,比较原则是按字典序。如果str1 > str2,则返回一个正整数,如果str1 = str2,则返回0,如果str1 < str2,则返回一个负整数;

    (3). strcpy(str1, str2) : 该函数用于将字符数组 str2 复制给字符数组 str1 ,包括结束符\0;

    (4). strcat(str1, str2) : 该函数用于将字符数组 str2 接到字符数组 str1 后面;

    (5). sscanf(str, "%d", &n) : 该函数用于将字符数组 str 中的内容以 “%d” 的格式写到 n 中;

    (6). sprintf(str, "%d", n) : 该函数用于将 n 以 “%d” 的格式写到字符数组 str 中。

  10. 字符数组的初始化方法:

    (1). char str[15] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!'};

    (2). 通过直接赋值字符串来初始化(仅限初始化,程序其他位置不允许直接赋值整个字符串):

    char str[15] = "Hello World!";

  11. 常用 math 函数(使用时要在程序开头加上 math.h 头文件):

    (1). fabs(double x) : 该函数用于对 double 型变量取绝对值;

    (2). floor(double x) : 该函数用于对 double 型变量的向下取整;

    (3). ceil(double x) : 该函数用于对 double 型变量的向上取整;

    (4). pow(double r, double p) : 该函数用于返回 $r^p$ ,要求 r 和 p 都是 double 型变量;

    (5). sqrt(double x) : 该函数用于返回 double 型变量的算术平方根;

    (6). log(double x) : 该函数用于返回 double 型变量的以自然对数为底的对数;

    (7). round(double x) : 该函数用于将 double 型变量四舍五入,返回值也是 double 型,需进行取整。

-------------本文已经结束 ~\(≧▽≦)/~ 感谢您的阅读-------------