C++零基础通关教程《第三课》
🚀 C++ 编程第三课:算术运算与浮点世界
📚 课程导航
- 🔢 算术运算符:加减乘除与求模运算
- 📊 数据类型:float与double的原理和应用
- 📢 下节预告:bool类型和关系运算符
1. 🔢 算术运算符:让程序学会计算
计算机最强大的功能之一就是进行数学计算。C++ 提供了和我们数学课上一样的算术运算符。
(一)基础运算符:+, -, *, /
这些是最常用的运算符,分别对应加、减、乘、除。
运算符 | 名称 | 示例代码 | 结果 |
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 10 - 4 | 6 |
* | 乘法 | 4 * 7 | 28 |
/ | 除法 | 15 / 2 | ??? |
编程案例:基础四则运算
#include <iostream>using namespace std;int main() {int a = 15;int b = 2;int sum = a + b; // 加法int difference = a - b; // 减法int product = a * b; // 乘法int quotient = a / b; // 除法cout << "a = " << a << ", b = " << b << endl;cout << "a + b = " << sum << endl;cout << "a - b = " << difference << endl;cout << "a * b = " << product << endl;cout << "a / b = " << quotient << endl; // 猜猜结果是多少?return 0;}运行结果:
a = 15, b = 2
a + b = 18
a - b = 13
a * b = 30
a / b = 7
💡 注意: 当使用 int(整数)类型进行除法时,结果会舍弃小数部分,而不是四舍五入。15 / 2 的结果是 7,而不是 7.5。
(二)特殊的运算符:% (求模 / 取余)
% 运算符计算的是除法运算后的余数。
运算符 | 名称 | 示例代码 | 计算过程 | 结果 |
% | 求模 / 取余 | 15 % 2 | 15 = 2 * 7 + 1 | 1 |
% | 求模 / 取余 | 10 % 3 | 10 = 3 * 3 + 1 | 1 |
% | 求模 / 取余 | 8 % 4 | 8 = 4 * 2 + 0 | 0 |
编程案例:求模运算的应用
求模运算非常有用,比如判断一个数是奇数还是偶数。
#include <iostream>using namespace std;int main() {int number = 7;// 如果一个数除以2的余数是0,它就是偶数;否则是奇数if (number % 2 == 0) {cout << number << " 是偶数。" << endl;} else {cout << number << " 是奇数。" << endl;}return 0;}运行结果:
7 是奇数。
2. 📊 数据类型:float与double的原理和应用
上一课我们学习了 int 类型,它用于存储整数。但如果我们需要处理带小数点的数字(比如身高 1.75 米,体重 62.5 公斤),int 就不够用了。这时我们需要 float 和 double。
(一)float 和 double 是什么?
float 和 double 都是用于存储浮点数(Floating-Point Number)的,也就是我们常说的小数。
- float:是 "floating point" 的缩写,意为单精度浮点数。
- double:是 "double precision" 的缩写,意为双精度浮点数。
(二)核心区别:精度和范围
它们的主要区别在于精度(能表示的小数位数)和存储范围(能表示的最大 / 最小数值)。
类型 | 中文名称 | 存储大小 (约) | 有效数字 (约) | 主要特点 |
float | 单精度浮点数 | 4 个字节 | 6 - 7 位 | 占用内存小,精度相对较低 |
double | 双精度浮点数 | 8 个字节 | 15 - 16 位 | 占用内存大,精度更高 |
💡 通俗理解:
float 就像一个普通的尺子,能精确到毫米;
double 就像一个高精度的卡尺,能精确到微米。
在大多数情况下,推荐使用 double,因为它的精度更高,能避免很多计算误差,而且在现代计算机上,double 的运算速度并不比 float 慢多少。
(三)编程案例:使用 double 进行精确计算
让我们重写之前的除法案例,这次使用 double 类型。
#include <iostream>using namespace std;int main() {// 使用 double 类型来存储带小数的数字double a = 15.0;double b = 2.0;// 现在进行除法double precise_quotient = a / b;cout << "a = " << a << ", b = " << b << endl;cout << "a / b = " << precise_quotient << endl; // 这次结果会是多少?// 再来看一个例子double height = 1.75; // 身高1.75米double weight = 62.5; // 体重62.5公斤double bmi = weight / (height * height); // 计算BMI指数cout << "\n身高: " << height << " m" << endl;cout << "体重: " << weight << " kg" << endl;cout << "BMI指数: " << bmi << endl;return 0;}运行结果:
a = 15, b = 2
a / b = 7.5
身高: 1.75 m
体重: 62.5 kg
BMI指数: 20.4082
💡 注意: 为了确保运算结果是浮点数,我们把其中一个或两个操作数写成了小数形式(如 15.0 和 2.0),而不是整数 15 和 2。
3. 📢 下节预告:bool类型和关系运算符
本节课我们学习了如何让程序进行数学计算,以及如何存储和处理小数。
下一节课,我们将学习:
- bool 类型:一种只有 true(真)和 false(假)两种值的类型,是进行逻辑判断的基础。
- 关系运算符:如 == (等于)、!= (不等于)、> (大于)、< (小于) 等,用于比较两个值的大小或相等性。
这些知识将让我们的程序能够进行逻辑判断,比如 "如果分数大于 60 分,则显示 ' 及格 '",这是编写复杂程序的关键一步!


