算术运算在 C++ 中
这是什么?为什么需要它?
想象一下,你是一家商店的收银员。顾客来了,你要把商品价格加起来,减去折扣,用单价乘以数量,在朋友之间分摊总金额。所有这些就是算术运算。在编程中,它们的运作方式完全相同:计算机能够对数字进行加、减、乘、除。没有这些,你就无法编写计算器、游戏或工资计算程序。
为什么需要了解这个?即使你想编写一个简单的程序,询问用户的年龄并告诉他还有多少年退休——你也会用到减法。想计算聚会需要多少披萨?需要除法。如果你在编写一个角色移动的游戏——那里面全是坐标的加法和减法。简而言之,算术是基础,没有它寸步难行。
语法和代码示例
在 C++ 中,算术运算看起来几乎和数学中一样。以下是基本符号:
+— 加法-— 减法*— 乘法(星号,不是叉号)/— 除法(斜杠)%— 取模(例如,7 % 3 = 1,因为 7 除以 3 余 1)
让我们看一些例子。代码写在 main() 内部,结果通过 cout 输出到屏幕。
#include <iostream>
using namespace std;
int main() {
// 示例 1: 加法
int a = 10;
int b = 5;
int sum = a + b; // 将 a 和 b 相加,结果存入 sum
cout << "Sum: " << sum << endl; // 输出: Sum: 15
// 示例 2: 减法
int diff = a - b; // 从 a 中减去 b
cout << "Difference: " << diff << endl; // 输出: Difference: 5
// 示例 3: 乘法
int prod = a * b; // a 乘以 b
cout << "Product: " << prod << endl; // 输出: Product: 50
// 示例 4: 除法
int quot = a / b; // a 除以 b
cout << "Quotient: " << quot << endl; // 输出: Quotient: 2
// 注意: 如果数字是整数,结果也是整数!10 / 3 = 3,而不是 3.333
// 示例 5: 取模
int rem = 10 % 3; // 10 除以 3,余数为 1
cout << "Remainder: " << rem << endl; // 输出: Remainder: 1
return 0;
}
请注意:在示例 4 中,我们将 10 除以 5 得到 2。但如果我们将 10 除以 3,会得到 3,而不是 3.333。因为 int 是整数,小数部分会被丢弃。要获得小数结果,需要使用 double(浮点数)。
#include <iostream>
using namespace std;
int main() {
// 浮点数示例
double x = 10.0;
double y = 3.0;
double result = x / y; // 现在除法将是精确的
cout << "Result: " << result << endl; // 输出: Result: 3.33333
// 可以混合整数和浮点数
int apples = 7;
double price = 2.5;
double total = apples * price; // 7 * 2.5 = 17.5
cout << "Total cost: " << total << endl;
return 0;
}
另一个重要点:运算顺序。和数学中一样,先乘除,后加减。如果你想改变顺序,请使用括号。
#include <iostream>
using namespace std;
int main() {
int a = 2;
int b = 3;
int c = 4;
// 无括号:先乘法,后加法
int res1 = a + b * c; // 2 + 12 = 14
cout << "Without parentheses: " << res1 << endl;
// 有括号:先加法,后乘法
int res2 = (a + b) * c; // 5 * 4 = 20
cout << "With parentheses: " << res2 << endl;
return 0;
}
与 Python 的比较
如果你已经尝试过 Python,你会注意到那里的算术非常相似。但有几个区别。
在 Python 中:
- 同样的加法
+、减法-、乘法*、除法/。 - 但 Python 中的除法总是返回小数结果!
10 / 3会是3.3333,即使数字是整数。 - 要获得整数除法(像 C++ 中那样),需要写
//(两个斜杠)。例如,10 // 3会得到3。 - 取模也是
%,和 C++ 一样。
以下是相同代码在 Python 中的样子:
# Python
a = 10
b = 3
# 普通除法——小数
print(a / b) # 3.3333333333333335
# 整数除法(像 C++ 中那样)
print(a // b) # 3
# 取模
print(a % b) # 1
# 其他都一样
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
主要区别:在 C++ 中,你需要提前声明变量类型(int 或 double),而在 Python 中类型是自动推断的。但在 C++ 中,你自己决定是想要整数还是小数——这提供了更多的控制。
新手常见错误
以下是刚开始学习的人最常出错的地方:
- 忘记分号 — 在 C++ 中,每条语句以
;结尾。如果没有,编译器会报错。 - 混淆
=和==—=是赋值(存入值),而==是比较(是否相等?)。在算术中我们只使用=。 - 用整数除法却期望小数结果 — 如果两个数都是
int,结果也是int。想要小数,至少让一个数是double。 - 忘记运算顺序 —
2 + 3 * 4是 14,而不是 20。如果怀疑,请使用括号。 - 除以零 — 不能除以零!程序会出错崩溃。始终检查除数是否不为零。