取模运算符
本课属于 Coddy C++ 学习旅程的“基础知识”单元。第 17 课,共 74 课。
取模运算符 % 用于求除法的余数。在 C++ 中,它的语法很简单:
result = dividend % divisor;- 被除数:被除的数。
- 除数:用来除被除数的数。
- 结果:除法的余数。
例如:
result = 10 % 3;这里,10 除以 3。3 在 10 中可以除 3 次,余数是 1。因此,result 的值为 1。
通常,取模用于检查一个数是偶数还是奇数:
- 如果一个数是偶数,那么它除以 2 的余数是 0。
- 如果一个数是奇数,那么它除以 2 的余数是 1;如果这个数是负数,余数则是 -1。
在 C++ 中处理浮点数(双精度数)时,不能直接使用取模运算符 %。你需要改用 <cmath> 库中的 fmod() 函数。它的作用与取模运算符类似,但会保留小数精度。例如:
#include <cmath>
double result = fmod(5.2, 2.0);
// result 的值是 1.2它的工作原理是这样的:5.2 里可以放入 2 个 2.0(共 4.0),余数是 1.2(5.2 - 4.0 = 1.2)。
另一个例子:
double result = fmod(7.8, 3.5);
// result 的值为 0.8当除数大于被除数时,结果等于被除数。这对 % 和 fmod() 都适用。
5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5为什么?除数一次也除不进去,所以整个被除数就是余数。
挑战
入门编写代码,初始化三个变量:a (int)、b (double) 和 c (int),它们的值分别为 9、2.6 和 11。
然后,初始化以下变量:
d (int),用于保存a除以2的余数e (int),用于保存a除以3的余数f (double),用于保存b除以1.5的余数g (double),用于保存b除以3.9的余数h (int),用于保存c除以10的余数
查看结果,看看不同的被除数和除数会如何影响结果。
亲手试试
#include <iostream>
#include <cmath>
int main() {
// 在下方输入你的代码
// 不要修改下面这行代码
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
std::cout << "c = " << c << std::endl;
std::cout << "d = " << d << std::endl;
std::cout << "e = " << e << std::endl;
std::cout << "f = " << f << std::endl;
std::cout << "g = " << g << std::endl;
std::cout << "h = " << h << std::endl;
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: C++ 在线编译器