标题:帮看下我的代码 为什么我随机生成的数每次都是一样的(不是数和数之间相同)
只看楼主
kingkino
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-10-18
结帖率:100%
 问题点数:0 回复次数:6 
帮看下我的代码 为什么我随机生成的数每次都是一样的(不是数和数之间相同)
#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 代码 
2008-01-28 21:46
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
得分:0 
糖炒栗子,现炒现卖
前几天提过类似的问题,论坛上的朋友帮我解决了,现郑重地转诉于您:
srand((unsigned)time(NULL));
加入这行代码,就会随着电脑时间的改变,变化着随机数字。

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-01-28 22:52
kingkino
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-10-18
得分:0 
加上这句话  出来的数字是变化了  可是同一次出来的10的都是一样的......这样不对吧

2008-01-28 23:39
kingkino
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-10-18
得分: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++)
            {
                srand((unsigned)time(NULL));
                array[count][count2]= rand ();
                printf("\narray[%d][%d]=%d\n",count,count2,array[count][count2]);
            }
    }
    getch ();
    return 0;
}

2008-01-28 23:39
菜鸭
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2007-12-9
得分: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次,可以正确运行。

谈笑声中话天地,清茶浊酒品江湖。
昔日豪杰今安在?中华代有人才出!
2008-01-28 23:54
kingkino
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-10-18
得分:0 
我刚试验下 是可以的  不过我想问下
srand((unsigned)time(NULL));  啥意思?

2008-01-29 20:36
kingkino
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-10-18
得分:0 
百度 上 收到了
"函数rand()是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。函数rand()会返回一个处于0和你所指定的数值(缺省为1)之间的分数。如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。而使用同种子相同的数调用srand()会导致相同的随机数序列被生成"
0和你所指定的数值(缺省为1)之间的分数?  怎么理解?

2008-01-29 20:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-198980-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.250077 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved