如何在C中生成5到40000之间的随机数?

问题描述 投票:0回答:1

我正在尝试使用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;

}

c
1个回答
1
投票

https://www.geeksforgeeks.org/generating-random-number-range-c/

因为C没有内置函数来生成该范围内的数字,但是它确实具有rand函数,该函数生成从0到RAND_MAX的随机数。借助rand(),可以生成范围内的数字,如下所示:num = (rand() % (upper – lower + 1)) + lower

© www.soinside.com 2019 - 2024. All rights reserved.