C 在两个变量之间生成随机数

C 在两个变量之间生成随机数,c,random,C,Random,我正在努力寻找一种方法来生成一个20到30之间的随机数。到目前为止,我有这个,但它的数字在20以下 int num1 = 30; int num2 = 20; int num_random = rand()%num1; while (num_random < num2){ num_random = rand()%30; } int num1=30; int num2=20; int num_random=rand()%num1; while(num_random

我正在努力寻找一种方法来生成一个20到30之间的随机数。到目前为止,我有这个,但它的数字在20以下

int num1 = 30;
int num2 = 20;
int num_random = rand()%num1;
while (num_random < num2){
    num_random = rand()%30;
}
int num1=30;
int num2=20;
int num_random=rand()%num1;
while(num_random
也许你可以试试
rand()/10+20

试试这个:

int num1 = 30;
int num2 = 20;
int num_random;
while (1){
    num_random = rand()%num1;
    if(num_random < num2)
        break;
}
int num1=30;
int num2=20;
int num_随机;
而(1){
num_random=rand()%num1;
if(num_random
要获得20到30之间的数字,请使用:

(rand() % 10) + 20
一般公式是:

(rand() % (difference_between_upper_and_lower_limit)) + lower_limit
上限与下限之差的结果为:

(0, no_of_numbers_between_upper_and_lower_limit)

网上有很多例子。。。你真的搜索过了吗?生成一个介于0和10之间的随机数,然后在结果中加上20怎么样?你需要小心使用
rand()
%
操作符。如果
RAND_MAX
不能被获得模数的数字平均整除,则
%
运算的结果将不会均匀分布。如果这个数字很小,而且使用也不是很重要,那就没关系了。不过,千万不要在核心密码中这样做。或者任何结果真正重要的事情。这会生成20到29之间的数字。修复生成30也不难。