| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6048 人关注过本帖
标题:求解:srand((unsigned)time(NULL));
只看楼主 加入收藏
Mirob
Rank: 4
来 自:农村
等 级:业余侠客
帖 子:191
专家分:264
注 册:2012-7-20
收藏
得分:3 
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
main()
{int a[20],i,j,x;
srand((int)time(NULL));
for(i=0;i<20;i++)
   {a[i]=rand()%20;
     x=0;
    for(j=x;j<i;j++)
       {
        if(a[i]==a[j])
            {
              a[i]=rand()%20;
                 j=-1;
             }
       }
   }  
for(i=0;i<20;i++)
   printf("%4d",a[i]);
}
产生不同随机数
2013-07-04 15:51
wyw19880809
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:178
专家分:738
注 册:2013-3-14
收藏
得分:3 
srand 如果和rand都放在循环内的话,因为程序运行时间很短,就会导致srand使用的系统时间种子都是一样的,导致随机函数初始化都是相同的,产生的随机数也就都一样了。这样的话 要么把srand放循环外,或者srand的种子使用局部变量通过几次间接访问的值来产生(这种方式一般是用在单片机上产生随机数的)
2013-07-05 10:16
快速回复:求解:srand((unsigned)time(NULL));
数据加载中...
 
   



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

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