为数组分配一个随机值

Assigning a random value to an array

我正在尝试

  1. 删除数组中的信息 10 "spots".
  2. 用 (10) 个随机数填充数组

我的代码到时间

int main()
{
    int numbers[10] = { 0 };
    int randNumber = 0;
    int i = 0;

    for (int i = 0; i <= 10; i++)
    {
        srand(time(NULL));
        randNumber = rand() % 10 + 1;
        printf("Random number saved in the array: %d\n", randNumber);
        i++;
    }

    getchar();
    getchar();
    return 0;
}

首先,您需要将 srand(time(NULL)); 移出循环。

否则,因为,time()的时间粒度是1秒,一秒内,如果在循环中多次调用(一秒内,大概) ,它将使用相同的 seed 重新初始化 PNRG,所有下一次调用 rand() 都会给你相同的 random 数字.

现在,一旦你有了 随机 数字,你需要 将它分配 给每个数组成员,比如 numbers[i] = randNumber;在循环内部,但还有更多内容。你的循环,目前关闭了一个。你需要改变

  for (int i = 0; i <= 10; i++)

 for (int i = 0; i < 10; i++)

保持在界限内。

你的数组大小是10,这个循环运行了11次,导致溢出。这将解决它:

for (int i = 0; i < 10; i++)

同时从循环体内删除循环迭代器 i 的递增。删除行:

i++;