Randomizer无法正常工作

时间:2014-10-22 00:35:38

标签: c random

我制作了一个随机发生器并且它无法正常工作。这是代码......

我有一个功能,

short rnd(short *num){
    return (rand() % max) + 1;
}

的原型
short rnd(short *num);

当我使用它时,我会这样做:

max = 10;
num = rnd(&max);

编译器没有抛出任何问题,但总是等于0 ... 有什么建议吗?

2 个答案:

答案 0 :(得分:4)

看来你的max是一个全局变量。我建议将它作为参数传递给你的rnd函数而不是将其作为全局参数,如果它在运行时没有改变,只需为你的max创建一个宏并传入它。

short rnd(unsigned short max)
{
  return (rand() % max) + 1;
}

答案 1 :(得分:0)

为了获得真正的随机数,需要播种。种子化的最佳方法是使用计算机的时间和标准库中的srand()。

#include <stdlib.h>
#include <time.h>
srand(time(NULL)); /*this in the main function*/

short rndnum(short max)
{
    return (short) (rand() % max) + 1;
}

这应该产生1到10之间的随机数。