-
sizeof是用来计算变量占多大内存的,单位是字节(byte);sizeof 后面跟类型时,必须加上括号,例如
sizeof(double)
;后面跟变量可以不用加括号,例如:sizeof d
-
%d是以十进制形式输出有符号整数(正数不输出符号),%o是以八进制形式输出无符号整数(不输出前缀0),%x是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是小写),%X是以十六进制形式输出无符号整数(不输出前缀0x,x、A ~ F是大写),用修饰符“#”控制前导显示;# 对c,s,d,u类无影响;对o类, 在输出时加前缀0。对x类,在输出时加前缀0x;例如:
printf("%#o %#X", a, a);
-
EOF读取文件结束符,其值为 -1;ctrl + d 可以可以终止读取;getchar()是获取输入的字符,putchar()是打印获取的字符,注意putchar不会自动换行;我们想要写一直读取的东西时,可以这么写:
while(scanf("%c", &c) != EOF)
或者while((c = getchar()) != EOF)
-
printf 的返回值是里面内容的长度;例如
printf("\n%d", printf("Hello world!"));
输出的先是Hello world!,然后一个换行,然后再输出的就是12,如果在 printf 里面加个 \n 输出就变成13了; -
%md可以控制读取输入的长度;例如:我们输入data = 20221228,
scanf("%4d%2d%2d", &y, &m, &d)
,那么y就是2022,m就是12,d就是28;printf("%02d", m)
表示输出m共有两位,如果位数不够的补前导0; -
set(int n) 函数是c++中 在输出操作中设置字段宽度设置,n表示字段宽度,只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽;头文件是
#include <iomanip>
; 当后面紧跟这的输出字段长度小于n时,在字段前面用空格补齐,也可以用setfill() 函数;当输出字段长度大于n时,全部整体输出;cout << setw(4) << 2022 << setw(4) << setfill('0') << 12 << setw(4) << setfill('0') << 28 << endl;
看输出:;我们知道:浮点数的存储与整数的存储方式大大不同,浮点数的存储会使用到科学计数法,例如:double d = 12345678;
当我们不想使用到科学计数法时,我们可以在输出的前面加上 fixed 关键字;double d = 12345678; cout << fixed << d;
;注意:无科学计数法的小数点后面的位数是6位!函数 **setprecision(int n)**与 fixed 一起使用可以控制小数点后面的位数;头文件也是上面那个;例如:double d = 12345678; cout << fixed << setprecision(4) << d;
-
pow(a, b)
函数是计算 a 的 b 次方;注意: pow 函数的参数类型是double,返回值也是double,当我们不强制类型转换时,有可能因为精度缺失而发生错误,头文件是#include <math.h>
; -
实现交换两个数可以通过位运算(不使用临时变量):
a = a ^ b; b = a ^ b; a = a ^ b;
-
海伦——秦九韶三角形中线面积公式:p = (a + b + c) / 2;s = sqrt(p * (p - a) * (p - b) * (p - c))
-
4 / 3 的结果是1,当我们想要的结果是一个浮点类型时,正确使用:4.0 / 3