以下代码中 % 的用途是什么?

What is the purpose of the % in the following code?

我正在为我的大学作业制作一个贪吃蛇游戏。在 C 中。现在,我知道这不是任务的理想语言,但这是我的任务。我找到了一个示例代码,目前正在重写/理解它,以便我可以编写自己的工作代码。到目前为止,这是一个轻松的旅程,而且一切都在一起了,但对于我的生活,我无法弄清楚为什么他们在以下几行中加上 %:

        for (i = 1; i <= 1 + rand() % 10; i++)
            food.x = 12 + rand() % (68 - 12);
        for (i = 1; i <= 1 + rand() % 10; i++)
            food.y = 12 + rand() % (28 - 12);

就上下文而言,这是在运动场上创造食物的功能。我理解兰特的事情并添加这些数字(这是我的比赛场地大小)但为什么要进行模除法?它有什么作用?

% 是模运算符,在这种情况下主要用于限制值,请参阅 modulo operator wiki

f.e。 1 + rand() % 10 表示该值将为 1 + [0..9] - 因此最大值为 10。[0..9] 是随机数模 10,将是 0 到 9 之间的数字。

% 是“模”运算符,即:它是两个操作数的整数除法的余数。

这是保证 rand() 的输出在一定范围内的一种方法。 例如:rand()%100 将在 099

之间

换句话说:12 + rand() % (68 - 12) 将介于 12 和 67

之间

因为:rand()%(68-12)068-12-1之间

因此:12+rand()%(68-12)1267[ 之间=30=]