明德香蜜-初中B班-L2
2026-10-09 16:37:15
发布于:广东
今天关键词: 数据类型、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 × 10^9 到 2 × 10^9
超过这个范围,就会数据溢出,结果出错。
2. long long
long long 也是整数类型,但能装更大的数。
范围大约是:
-9 × 10^18 到 9 × 10^18
记法:数很大,就用 long long。
三、浮点数类型:float 和 double
浮点数就是小数。
| 类型 | 说明 |
|---|---|
float |
精度低,一般不用 |
double |
精度高,我们只用 double |
记住:写小数,优先用 double。
四、数据类型转换
1. 计算优先级
当不同类型一起计算时,结果会变成“更大的那个类型”。
优先级从大到小:
double > float > long long > int
大白话:谁大,结果就变成谁。
例子:
5 / 2 // 整数除法,结果是 2
5.0 / 2 // 有一个是小数,结果是 2.5
2. 强制转换
强制转换就是:我不管你原来是什么类型,强行变成我要的类型。
第一种:定义变量时发生
int a = 3.4; // 小数塞进 int 盒子,小数部分被舍去,a 变成 3
double b = 3; // 整数塞进 double 盒子,b 变成 3.0
第二种:用函数或语法强转
语法:
(数据类型)(要强转的数据)
例子:
int a = 3;
double b = (double)(a); // 把 a 转成 double
或者:
int x = (int)(3.9); // 3.9 变成 3,小数部分直接舍去
注意:强制转换不会四舍五入,是直接舍去小数部分。
五、格式化输出 printf
printf 可以解决“保留小数并四舍五入”的问题。
基本语法:
printf("输出的内容");
例子:
printf("hello world!");
1. 怎么输出变量?用占位符
占位符就像先挖一个坑,等会儿把数据填进去。
| 占位符 | 对应类型 |
|---|---|
%d |
int |
%lld |
long long |
%f 或 %lf |
double |
%f |
float |
例子:
int a = 10;
printf("%d", a);
long long b = 10000000000;
printf("%lld", b);
double c = 3.14159;
printf("%lf", c);
2. 保留小数
在小数占位符里操作:
%.mf
意思是:保留 m 位小数。
例子:
double a = 3.14159;
printf("%.2lf", a); // 输出 3.14
注意:printf 输出小数时,会自动四舍五入。
3. printf 的输出结构
printf 输出时分两部分:
- 原样输出部分:双引号里直接写的字。
- 占位符部分:需要后面填数据。
例子:
int a = 5;
printf("a的值是:%d", a);
输出:
a的值是:5
六、数学相关函数
1. 不需要额外头文件的
max(a, b) // 返回 a 和 b 中的较大值
min(a, b) // 返回 a 和 b 中的较小值
注意:max 和 min 只能对同种类型比较。
例子:
max(3, 5); // 5
min(3, 5); // 3
2. 必须导入 cmath 头文件
#include <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 类型。
七、完整小例子
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main() {
int a = 5, b = 2;
double c = 3.14159;
printf("%d\n", a + b);
printf("%.2lf\n", c);
cout << max(a, b) << "\n";
cout << pow(2, 3) << "\n";
cout << sqrt(16) << "\n";
cout << ceil(2.1) << "\n";
cout << floor(2.9) << "\n";
return 0;
}
八、容易错的地方
int装不下太大的数,会溢出。- 小数优先用
double,不要用float。 int a = 3.4;会变成3,不是四舍五入。printf的占位符要和类型对应:int用%dlong long用%llddouble用%lf
- 保留小数写成
%.2lf,不要写成%.2d。 max、min只能比较同种类型。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
全部评论 1
小码王的吗
4天前 来自 浙江
0


















有帮助,赞一个