如何在 C 中使用 random()

Jim*_*af. 0 c random

所以我目前正在学习 C,我对该random()函数的工作方式有些困惑。我知道我必须提供一个种子,但我不知道如何实际生成随机数。

srandom(seed);
long int value= random(40);
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,它给了我一个编译器错误:

too many arguments to function ‘long int random()
Run Code Online (Sandbox Code Playgroud)

最终目标是获得 1 到 40 之间的随机数。我应该补充一点,目标是不使用该rand()函数。

Meh*_*hai 5

您的问题的答案由编译器准确回答。您将'40'传递给它应该接收的函数random()

random() 的签名是:

long int random (void) 
Run Code Online (Sandbox Code Playgroud)

这里的void关键字表明手头的函数不应该接收任何东西。

这是一个生成 6 个随机数的示例程序。

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

int main()
{
    int num;
    int max = 5; 
    for (int c = 0; c <= max; c++){
      num = random();
      printf("%d\n",num);         
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

fire-trail@Sahai-Yantra:~$ gcc try.c 
fire-trail@Sahai-Yantra:~$ ./a.out
1804289383
846930886
1681692777
1714636915
1957747793
424238335
Run Code Online (Sandbox Code Playgroud)

要使用 实现在给定范围内生成随机数的最终目标random(),请参阅如何从范围内生成随机数