我正在尝试使用rand()函数生成5到40000之间的随机数。并将它们添加到3x3矩阵中。我试过用rand和mod 39996乘以rand是您认为正确的解决方案吗?
这里是代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
srand(time(0));
int **matris;
matris=(int **)calloc(3,sizeof(int)); // ilk pointerla 3 kutuya boldum yani 3 satir
for(int i=0;i<3;i++){
matris[i]=calloc(3,sizeof(int)); // buradada 3 kutunun herbirinin icini 3e boldum
}
for(int i=0;i<3;i++){ // i= matrisin satirini j= matrisin sutununu temsil ediyor
for(int j=0;j<3;j++){
matris[i][j]= 5 + ((rand()*rand())%39996); // burada rand() fonksiyonunun karesini alip isleme devam ettim. 5 ile 40000 arasi sayilar olusturuyor.
}
}
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d\t",matris[i][j]);
}
printf("\n");
}
return 0;
}
https://www.geeksforgeeks.org/generating-random-number-range-c/
因为C没有内置函数来生成该范围内的数字,但是它确实具有rand函数,该函数生成从0到RAND_MAX的随机数。借助rand()
,可以生成范围内的数字,如下所示:num = (rand() % (upper – lower + 1)) + lower