| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 573 人关注过本帖
标题:为什么会输出相同的随机数?
只看楼主 加入收藏
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:4 
为什么会输出相同的随机数?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int sj(void)
{
      int a;
      srand(time(NULL));
      a=rand()%10;
      return a;  
}
int main(void)
{
   printf("%d\n",sj());  
   printf("%d\n",sj());
    return 0;
 }      
不是应该每调用一次sj()输出的结果会不相同吗,为什么每次运行都会出现两个相同的结果。
搜索更多相关主题的帖子: include return 
2013-08-22 16:27
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:7 
srand()放错位置了。。
程序代码:
int main()
{
srand();
...
}

从不知道到知道,到知道自己不知道,成长的道路上脚步深深浅浅
2013-08-22 16:36
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:7 
是否time返回的值两次都是一样的,即种子是一样的
2013-08-22 16:58
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:7 
这样就OK了
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int sj(void)
{
      int a;
      a=rand()%10;
      return a; 
}
int main(void)
{
   srand(time(NULL));
   printf("%d\n",sj()); 
   printf("%d\n",sj());
   return 0;
}      

 

三十年河东,三十年河西,莫欺少年穷!
2013-08-22 17:32
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:0 
回复 3楼 jk_love
为什么放在MAIN中,种子就不一样了。
2013-08-22 19:18
快速回复:为什么会输出相同的随机数?
数据加载中...
 
   



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

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