首页 > 编程笔记 > C语言笔记(精华版)

C语言取模运算符(取余运算符)的用法

C语言中的取模运算符(也称为取余运算符)是%,这个运算符用于计算两个整数相除后的余数。理解取模运算对于解决许多编程问题至关重要,尤其是在处理循环、数组索引和各种数学计算时。


取模运算的基本语法如下:

result = dividend % divisor;

其中,dividend 是被除数,divisor 是除数,result 是余数。


取模运算符返回除法操作的余数。例如,7 除以 3 的商是 2,余数是 1,因此,7 % 3 的结果是 1。让我们看一个简单的例子:

#include 

int main() {
    int a = 17;
    int b = 5;
    int result = a % b;
    
    printf("%d %% %d = %d\n", a, b, result);
    
    return 0;
}

运行这段代码,我们会得到以下输出:

17 % 5 = 2

在这个例子中,17 除以 5 的商是 3,余数是 2,因此,17 % 5 的结果是 2。

注意事项

使用取模运算符时,需要注意以下几点:


让我们通过一个更复杂的例子来展示这些注意事项:

#include 

int main() {
    int a = 17, b = 5, c = -17, d = -5;
    
    printf("%d %% %d = %d\n", a, b, a % b);
    printf("%d %% %d = %d\n", c, b, c % b);
    printf("%d %% %d = %d\n", a, d, a % d);
    printf("%d %% %d = %d\n", c, d, c % d);
    
    // 下面这行会导致运行时错误
    // printf("%d %% %d = %d\n", a, 0, a % 0);
    
    return 0;
}

运行这段代码,我们会得到以下输出:

17 % 5 = 2
-17 % 5 = -2
17 % -5 = 2
-17 % -5 = -2

常见应用

取模运算符在编程中有许多常见的应用,以下是一些例子:

1. 判断奇偶数:我们可以使用 n % 2 来判断一个数是奇数还是偶数。如果结果为 0,则 n 是偶数;如果结果为 1,则 n 是奇数。

2. 循环数组索引:当我们需要循环访问数组时,可以使用取模运算符来确保索引始终在有效范围内。

3. 生成随机数:在某些随机数生成算法中,取模运算符用于将生成的数限制在特定范围内。

4. 实现循环队列:在循环队列的实现中,取模运算符用于计算队列的头尾指针


让我们通过一个例子来展示如何使用取模运算符来循环访问数组:

#include 

#define ARRAY_SIZE 5

int main() {
    int numbers[ARRAY_SIZE] = {1, 2, 3, 4, 5};
    int i;
    
    for (i = 0; i < 10; i++) {
        int index = i % ARRAY_SIZE;
        printf("numbers[%d] = %d\n", index, numbers[index]);
    }
    
    return 0;
}

运行这段代码,我们会得到以下输出:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5
numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

在这个例子中,我们使用取模运算符来确保数组索引始终在 0 到 4 之间,即使循环次数超过了数组的大小。

推荐阅读