之前遇到了如下代码:
num = rand() % 100; //表示生成一个0~99的随机数
num1 = rand() % 100 + 1; //表示生成一个1~100的随机数
为什么表示0~99?
于是尝试下列代码:
#include <stdio.h>
#include <time.h>
int main()
{
const int a = 3;
const int b = 53;
int i, num;
srand(time(NULL));
for (i = 0; i < 500; i++)
{
num = rand() % a + b;
printf("%d\n", num);
}
return 0;
}
运行结果部分如下:
多次尝试后可知第一个数a表示生成的数的范围,第二个数b表示生成的数的最小可能值
即生成的数num有a种可能,而b <= num <= b + a - 1
ex:如rand() % 5 + 3就表示生成的数有5种可能,其值必然大于等于3,小于等于7