21xrx.com
2024-11-22 19:42:40 Friday
登录
文章检索 我的文章 写文章
C语言实现随机数生成1到100两次不重复
2023-06-17 15:56:42 深夜i     --     --

在C语言中,生成不重复的随机数是一个常见的问题。特别是在一些需要生成唯一标识符或者随机密码的场合,这个问题就显得更加重要了。本文将介绍如何使用C语言生成两个不重复的随机数,这两个数都在1到100之间。

首先,我们需要使用C语言的随机数函数rand()。这个函数会生成一个从0到RAND_MAX之间的整数。但是,如果我们需要生成1到100之间的数,就需要做一些转换,如下所示:

int random_num1, random_num2;

srand((unsigned int) time(NULL)); // 设置随机数种子

random_num1 = 1 + (int) (100.0 * rand() / (RAND_MAX + 1.0)); // 生成1到100之间的随机数

random_num2 = 1 + (int) (100.0 * rand() / (RAND_MAX + 1.0));

在上述代码中,我们首先使用time(NULL)函数获取当前系统时间作为随机数的种子,以保证每次生成的随机数都是不同的。然后,我们使用rand()函数生成一个0到RAND_MAX之间的随机整数,通过一些公式的转换,将这个随机整数转换成1到100之间的整数。

值得注意的是,我们在转换的时候采用了加1的方式,这是因为rand()函数所生成的随机数在0到RAND_MAX之间,而不是1到RAND_MAX之间。加1之后,我们就可以得到1到100之间的随机数了。

如果我们要生成两个不同的随机数,就需要对生成的第二个随机数进行判断,如果和第一个随机数相等,就重新生成一个。判断的代码如下所示:

while (1) {

  random_num2 = 1 + (int) (100.0 * rand() / (RAND_MAX + 1.0));

  if (random_num2 != random_num1)

    break;

}

在上述代码中,我们使用了while循环,不断地生成随机数,直到第二个随机数和第一个随机数不相等为止。

综上所述,我们可以通过一些简单的代码实现C语言随机数生成1到100两次不一样的功能。本文介绍的两个关键字是C语言和随机数生成。除此之外,其他的关键字包括srand()函数、rand()函数以及循环等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复