我制作了一个随机发生器并且它无法正常工作。这是代码......
我有一个功能,
short rnd(short *num){
return (rand() % max) + 1;
}
有
的原型short rnd(short *num);
当我使用它时,我会这样做:
max = 10;
num = rnd(&max);
编译器没有抛出任何问题,但总是等于0 ... 有什么建议吗?
答案 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之间的随机数。