for(i = 0; i < n; i++){
srand(time(NULL));
printf("%d ", time(NULL));
for(j = 0; j < (n-1); j++){
a[i][j] = rand();
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试生成随机数,但它们是相同的......我试试srand(i * time(NULL)).不管......我该怎么办?
数组声明:
int** a;
int i;
printf("Enter array size: ");
scanf("%d", &n);
a = (int**)calloc(n, sizeof(int));
for(i = 0; i < n; i++)
a[i] = (int*)calloc(n-1, sizeof(int));
Run Code Online (Sandbox Code Playgroud)
Byr*_*ock 21
srand()在循环之外调用.您每次迭代都会重新播种.
srand()对随机数生成器进行种子处理,以便根据输入获得不同的随机数序列.您的循环运行速度非常快,因此调用time(NULL)始终返回相同的值.您将在每次迭代时重置为相同的随机序列.一般来说,只能srand()在程序中调用一次.