在c中的函数中使用rand()

Neh*_*rla 0 c random

我创建了一个函数,它创建一个0到9之间的随机数,但是当我在一个for循环中调用main函数时,索引i = 0; 我<n; i ++它打印1个随机数n种类型.但我想要打印n次不同的值.这是我做的代码: -

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    void random_variable() {
     int i;
     srand(time(NULL));
     i = rand()%10;
     printf("%d ",i);
    }
    main() {
     for(int j=0;j<10;j++) {
      random_variable();
     }
    }
Run Code Online (Sandbox Code Playgroud)

输出是这样的: -

请点击链接查看输出: - 此处而不是8次,我需要10个不同的值

小智 5

srand()初始化标准C库的PRNG(伪随机数生成器).PRNG通过对内部存储的值应用或多或少复杂的算术运算并将结果的一部分作为下一个"随机"数返回.srand()设置此内部状态.

如果你srand()每次都在函数中调用,你就不会得到(明智的)随机数,因为每次都会重置内部状态.程序启动后调用它.