当前位置: 代码迷 >> C语言 >> 帮看下我的代码 为什么我随机生成的数每次都是一样的(不是数和数之间相同)
  详细解决方案

帮看下我的代码 为什么我随机生成的数每次都是一样的(不是数和数之间相同)

热度:125   发布时间:2008-01-28 21:46:44.0
帮看下我的代码 为什么我随机生成的数每次都是一样的(不是数和数之间相同)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
/*随机生成一些数,储存在一个5行4列的二维数组里面,并打印*/
int array[5][4];
int main (void)
{
    int count,count2;
    for (count=0;count<5;count++)
    {
        for (count2=0;count2<4;count2++)
            {
                array[count][count2]= rand ();
                printf("\narray[%d][%d]=%d\n",count,count2,array[count][count2]);
            }
    }
    getch ();
    return 0;
}
搜索更多相关的解决方案: 随机  count  int  include  代码  

----------------解决方案--------------------------------------------------------
糖炒栗子,现炒现卖
前几天提过类似的问题,论坛上的朋友帮我解决了,现郑重地转诉于您:
srand((unsigned)time(NULL));
加入这行代码,就会随着电脑时间的改变,变化着随机数字。
----------------解决方案--------------------------------------------------------
加上这句话  出来的数字是变化了  可是同一次出来的10的都是一样的......这样不对吧
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
/*随机生成一些数,储存在一个5行4列的二维数组里面,并打印*/
int array[5][4];
int main (void)
{
    int count,count2;
    for (count=0;count<5;count++)
    {
        for (count2=0;count2<4;count2++)
            {
                srand((unsigned)time(NULL));
                array[count][count2]= rand ();
                printf("\narray[%d][%d]=%d\n",count,count2,array[count][count2]);
            }
    }
    getch ();
    return 0;
}
----------------解决方案--------------------------------------------------------
时间种子的地方不对
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
/*随机生成一些数,储存在一个5行4列的二维数组里面,并打印*/
int array[5][4];
int main (void)
{
    int count,count2;
    srand((unsigned)time(NULL));
    for (count=0;count<5;count++)
    {
        for (count2=0;count2<4;count2++)
            {

                array[count][count2]= rand ();
                printf("\narray[%d][%d]=%d\n",count,count2,array[count][count2]);
            }
    }
    getch ();
    return 0;
}



经过测试10次,可以正确运行。
----------------解决方案--------------------------------------------------------
我刚试验下 是可以的  不过我想问下
srand((unsigned)time(NULL));  啥意思?
----------------解决方案--------------------------------------------------------
百度 上 收到了
"函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。函数rand()会返回一个处于0和你所指定的数值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用srand()会导致相同的随机数序列被生成"
0和你所指定的数值(缺省为1)之间的分数?  怎么理解?
----------------解决方案--------------------------------------------------------
  相关解决方案