c - 在 C 中保存随机生成的数字

标签 c arrays function random

我正在尝试找到保存一组随机生成的数字的最佳方法,以便稍后可以在另一个函数中调用它们。基本上,我有一个函数可以生成数字并确保它们没有重复,但我需要另一个函数来搜索数字列表以查看用户是否选择了其中一个数字。每当我在搜索函数中调用随机数函数时,我都会得到不同随机数的列表。

基本上,我只是想找出保存这个数字数组的最佳方法,这样下次调用该函数时它就不会给我知道的数字,或者将其传递给下一个函数的最佳方法功能。

这是随机数生成器函数,以防您想了解我试图传递给下一个函数的内容。

int i, j;
/*generates the set of random numbers*/
for(i = 0; i < MAX; i++) {



    random = rand() % 101;
   /*checks to to make sure there is no repeats*/
  for (j = 0; j < i; j++) {
       if (lucky[j] == random) {
          random = rand() % 101;
                               }
                          }
       lucky[i] = random;

printf("%3d",random);
                          }                          

最佳答案

首先创建一个新数组:

int *lucky = malloc(amount_of_numbers_you_want * sizeof(int));

然后照常用随机数填充,然后返回。例如:

int* generate_random_numbers(int amount)
{
    int *lucky = malloc(amount * sizeof(int));

    /* Fill lucky[] with 'amount' unique random numbers. */

    return lucky;
}

然后,每当您调用该函数时,请将其返回的指针保存在某处。当您不再需要该指针时,请不要忘记free()该指针,否则您将泄漏它占用的内存。

由于这看起来像家庭作业,因此我不会向您提供完整的代码,而是提供如何使用动态分配的数组处理此类问题的一般方法。

关于c - 在 C 中保存随机生成的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990619/

相关文章:

java - 当我尝试使用 BufferedReader 将整数输入存储到数组中时遇到数字格式异常

javascript - 以自定义方式对数组进行排序?

javascript - 无法使用 JavaScript 中的大小写函数转换我的字符串

c - 在C中调用时如何存储函数地址?

arrays - 将字符串重新分配给数组中的一组值

c++ - 为什么这个带模板模板参数的函数编译不通过?

c - 如果两者在 C 中具有相同的名称而不使用第三个变量,如何将局部变量复制到全局变量?

c - extern 关键字对 C 函数的影响

c - 按值或引用将数组传递给函数是否相同?

c - 使用 "fgets"时如何仅获取部分用户输入并丢弃其他字符?