今天关键词: 数据类型、int、long long、double、强制转换、printf、占位符、数学函数
> 小提醒:写代码时,类型要和盒子匹配。装整数的盒子别硬塞小数,装小数的盒子也别硬塞超大整数。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一、数据类型:盒子有很多种形状
C++ 里的数据不是只有一种,而是分类型的。就像收纳盒有装笔的、装衣服的、装零食的。
常见类型:
类型 意思 例子 整数 没有小数点的数 -1、1、2、3 浮点数 小数 1.1、2.2、-1.1 字符 单个字母或符号,用单引号包起来 'a'、'b'、','、'-' 布尔类型 真或假 true、false
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二、整数类型:INT 和 LONG LONG
1. INT
int 是整数类型,但能装的数有限。
范围大约是:
超过这个范围,就会数据溢出,结果出错。
2. LONG LONG
long long 也是整数类型,但能装更大的数。
范围大约是:
记法:数很大,就用 long long。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
三、浮点数类型:FLOAT 和 DOUBLE
浮点数就是小数。
类型 说明 float 精度低,一般不用 double 精度高,我们只用 double
记住:写小数,优先用 double。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
四、数据类型转换
1. 计算优先级
当不同类型一起计算时,结果会变成“更大的那个类型”。
优先级从大到小:
大白话:谁大,结果就变成谁。
例子:
2. 强制转换
强制转换就是:我不管你原来是什么类型,强行变成我要的类型。
第一种:定义变量时发生
第二种:用函数或语法强转
语法:
例子:
或者:
注意:强制转换不会四舍五入,是直接舍去小数部分。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
五、格式化输出 PRINTF
printf 可以解决“保留小数并四舍五入”的问题。
基本语法:
例子:
1. 怎么输出变量?用占位符
占位符就像先挖一个坑,等会儿把数据填进去。
占位符 对应类型 %d int %lld long long %f 或 %lf double %f float
例子:
2. 保留小数
在小数占位符里操作:
意思是:保留 m 位小数。
例子:
注意:printf 输出小数时,会自动四舍五入。
3. PRINTF 的输出结构
printf 输出时分两部分:
1. 原样输出部分:双引号里直接写的字。
2. 占位符部分:需要后面填数据。
例子:
输出:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
六、数学相关函数
1. 不需要额外头文件的
注意:max 和 min 只能对同种类型比较。
例子:
2. 必须导入 CMATH 头文件
常用函数:
函数 意思 例子 pow(a, b) 求 a 的 b 次方 pow(2, 3) 得 8 abs(x) 求 x 的绝对值 abs(-5) 得 5 sqrt(x) 求根号 x sqrt(4) 得 2 ceil(x) 向上取整 ceil(2.1) 得 3 floor(x) 向下取整 floor(2.9) 得 2
注意:这些函数通常返回 double 类型。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
七、完整小例子
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
八、容易错的地方
1. int 装不下太大的数,会溢出。
2. 小数优先用 double,不要用 float。
3. int a = 3.4; 会变成 3,不是四舍五入。
4. printf 的占位符要和类型对应:
* int 用 %d
* long long 用 %lld
* double 用 %lf
5. 保留小数写成 %.2lf,不要写成 %.2d。
6. max、min 只能比较同种类型。
7. pow、abs、sqrt、ceil、floor 要加 #include <cmath>。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
九、记忆小口诀
> 整数盒子 int 和 long long;
> 小数盒子 double 最常用;
> 类型不同谁大听谁的;
> 强转直接舍小数;
> printf 挖坑填数据;
> %.2lf 保留两位;
> 数学函数 cmath 里找;
> max、min、pow、sqrt、ceil、floor。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
今日一句话总结:
数据有类型,盒子有形状;int 装整数,long long 装大整数,double 装小数;类型不同会转换,强转直接舍小数;printf 用占位符,%.2lf 保留两位;数学函数要加 cmath。
回放:https://live-admin.xiaomawang.com/teacher/view-record?videourl=https://xm-live.oss-cn-shanghai.aliyuncs.com/AgoraRecordStream/merged_LIVE0RTWKBJZGNFZXMZGN2FJIMU57Z4W.m3u8