云计算百科
云计算领域专业知识百科平台

从C++0基础到C++入门(第八节:算数运算符【取模运算 %】)

 (和之前一样,初学者只需学习红色字体即可)

 1. 取模运算

  1.1 【%】的基本概念

取模运算符(%)用于计算两个数相除后的余数。其语法形式为 a % b,其中 a 是被除数,b 是除数。结果的符号与被除数 a 的符号一致。

 

  1.2  运算的规则

  • 当 a 和 b 均为正数时,结果为 a 除以 b 的余数。
  • 当 a 为负数时,结果为 a 除以 b 的余数,但符号与 a 相同
  • 当 b 为负数时,结果与 b 为正数时相同。

示例:

int x = 10 % 3; // 结果为 1
int y = -10 % 3; // 结果为 -1
int z = 10 % -3; // 结果为 1

 

1.3 取模运算的应用场景

  • 判断奇偶性:通过 n % 2 是否为 0 判断 n 是否为偶数。

    if (n % 2 == 0) {
    // n 是偶数
    }

  • 循环周期性操作:例如,循环遍历数组时,使用取模实现循环索引。

    int index = current_index % array_size;

  • 数字拆分:提取数字的某一位。

    int last_digit = number % 10; // 获取个位数

  • 注意:

    • 除数 b 不能为 0,否则会导致运行时错误(除以零异常)。
    • 取模运算仅适用于整数类型(int、long 等),浮点数需使用 fmod 函数
    • 结果的符号可能因编译器实现不同而有所差异(C++11 标准已统一行为)。

     

     2. 进阶:

    2.1浮点数取模运算

    对于浮点数,需使用 <cmath> 中的 fmod 函数

    #include <cmath>
    double result = fmod(10.5, 3.2); // 结果为 10.5 – 3*3.2 = 0.9

      代码示例

    以下是一个完整的示例,展示取模运算的多种用法:

    #include <iostream>
    #include <cmath>
    using namespace std;

    int main() {
    // 整数取模
    cout << "10 % 3 = " << 10 % 3 << endl;
    cout << "-10 % 3 = " << -10 % 3 << endl;
    cout << "10 % -3 = " << 10 % -3 << endl;

    // 判断奇偶性
    int num = 7;
    if (num % 2 == 0) {
    cout << num << " is even." << endl;
    } else {
    cout << num << " is odd." << endl;
    }

    // 浮点数取模
    double a = 10.5, b = 3.2;
    cout << "fmod(10.5, 3.2) = " << fmod(a, b) << endl;

    return 0;
    }

    输出结果:

    10 % 3 = 1
    -10 % 3 = -1
    10 % -3 = 1
    7 is odd.
    fmod(10.5, 3.2) = 0.9

    (作者前两天经历了第一次分手,调整了一段时间,不多说了,还得继续学习)

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 从C++0基础到C++入门(第八节:算数运算符【取模运算 %】)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!