0

这是我的代码

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


 main()
 {
    int r = rand() % 20;
    printf("%d", r);
 }

我想得到一个 19 及以下的随机数,但它只会在我1每次编译和运行它时给我。有人可以告诉我我做错了什么吗?

4

3 回答 3

1

尝试

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


 int main()
 {
    srand(time(NULL));
    int r = rand() % 20;
    printf("%d", r);
 }

注意:使用 % 并不是获得均匀分布的好方法。
请参阅:初始化 srand 的推荐方法?了解更多信息。

于 2013-09-21T04:34:06.147 回答
0

阅读有关播种随机数生成器的信息 - 即http://linux.die.net/man/3/srand

于 2013-09-21T04:33:56.053 回答
0

如果您使用的是 Turbo C++ 4.5,那么放一个

randomize();

int r=rand()%20;

它也会给出你想要的结果。

于 2013-09-21T07:08:23.143 回答