以下代码中 % 的用途是什么?
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 将在 0 和 99
之间
换句话说:12 + rand() % (68 - 12) 将介于 12 和 67
之间
因为:rand()%(68-12)在0和68-12-1之间
因此:12+rand()%(68-12) 在 12 和 67[ 之间=30=]
我正在为我的大学作业制作一个贪吃蛇游戏。在 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 将在 0 和 99
之间换句话说:12 + rand() % (68 - 12) 将介于 12 和 67
之间因为:rand()%(68-12)在0和68-12-1之间
因此:12+rand()%(68-12) 在 12 和 67[ 之间=30=]