C语言随机取值问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:16:11
我想在一个二维数组建成的棋盘里随机取三个位置在七种元素中随机放入一种元素,过程如下:
void ADDONE()
{
int i,j,valu;
srand ( (unsigned) time (NULL) );
i=rand()%10+1;j=rand()%10+1; //随机选取添加位置
if(a[2*i-1][2*j-1]!=0){i=rand()%10+1;j=rand()%10+1; }
valu=rand()%7+1; //随机选取元素

a[2*i-1][2*j-1]=valu;
}
void ADDTHREE()
{
ADDONE();
ADDONE();
ADDONE();
}
前面已经对数组初始化。这样看起来没有问题可是为什么三次随机取的值都一样。明明我有那个不等于0的条件控制,而且为什么刚好三次随机都能取到一样的值?是哪里不对呢?

srand ( (unsigned) time (NULL) );
放到 main() 里,否则运行太快,时间未变,
ADDONE() 种子也不变,rand也不变。

你把完整的代码贴出来也好调试
这样看逻辑上看不出啥明堂的。