gpt4 book ai didi

c - 为什么这段代码中的 rand() 总是产生相同的矩阵

转载 作者:行者123 更新时间:2023-11-30 21:02:20 26 4
gpt4 key购买 nike

我想创建一个矩阵,其所有元素均为 1 或 0。这是我尝试过的,它会按照我的意愿在随机位置生成一个带有 1 和 0 的矩阵。然而,它每次都会产生相同的矩阵。

#include <stdio.h>
#include <stdlib.h>

int a[10][10];
int i = 0,j= 0,n=0;

int main(void)
{
populate(5);
print(5);

return 0;
}

int populate(int n)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j] = rand()%2;
}
}
}

int print(int n)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
}

编辑:根据回复,我已编辑我的函数如下。但是我看到我的矩阵现在全为零或全一。

int populate(int n)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
srand (time(NULL));
a[i][j] = rand()%2;
}
}
}

最佳答案

However, it produces the same matrix everytime.

那是因为您尚未添加代码来为随机数生成器提供种子。添加

srand(time(NULL));

main 开始处,在对 rand() 进行任何调用之前。

关于c - 为什么这段代码中的 rand() 总是产生相同的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30906072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com