CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  新手乐园

关于c++的随机数

楼主ejie8033()2006-05-03 19:29:12 在 C/C++ / 新手乐园 提问

今天网上差了一下c++的随机数用法,好像有问题呀  
  #include   <iostream.h>  
  #include   <stdlib.h>  
  #include   <time.h>  
  void   main()  
  {  
  int   a[4],i;  
  srand((unsigned)time(NULL));  
  for(i=0;i<4;i++)  
  //a[i]=rand()%13+1;//这个到可以  
  a[i]=(int)(rand()*13/(float)RAND_MAX+1);//这个每次a[0]都是固定的值。  
  for(i=0;i<4;i++)  
  cout<<a[i]<<endl;  
  }  
  上面的程序,编译后生成exe文件,运行exe文件每次a[0]的值都一样,其它的到随机,请问这是怎么回事呀,如何让a[0]也随机。  
  问题点数:20、回复次数:5Top

1 楼Error_Code(void)回复于 2006-05-03 20:34:18 得分 0

srand((unsigned)time(NULL));  
  问题可能在这里  
  随即种子的问题吧     取时间   不知道变什么了   时?分?秒?  
  建议直接取秒Top

2 楼ma100()回复于 2006-05-03 20:36:02 得分 0

a[i]=(int)(rand()*13/(float)RAND_MAX+1);//这个每次a[0]都是固定的值。  
   
  不是,因为RAND_MAX太大了,所以你看着象一个值,可以打印float看看就知道了Top

3 楼chenhu_doc(^0^纯一狼^0^ 看书看到大笑,直到不能自已)回复于 2006-05-03 21:27:05 得分 0

ls   说的有理  
  Top

4 楼eminwoo(天邪鬼)回复于 2006-05-03 21:34:00 得分 20

这很容易  
  #include   <iostream.h>  
  #include   <stdlib.h>  
  #include   <time.h>  
  void   main()  
  {  
  int   a[4],i;  
  srand((unsigned)time(NULL));  
  for(i=0;i<4;i++)  
  {  
  rand()*13/(float)RAND_MAX+1;  
  a[i]=(int)(rand()*13/(float)RAND_MAX+1);  
  }  
  for(i=0;i<4;i++)  
  cout<<a[i]<<endl;  
  }  
  这样就没有固定值了Top

5 楼Error_Code(void)回复于 2006-05-03 21:56:35 得分 0

学习了..Top

相关问题

关键词

得分解答快速导航

  • 帖主:ejie8033
  • eminwoo

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo