工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1572|回复: 2

C++问题

[复制链接]
发表于 2006-5-11 13:17 | 显示全部楼层 |阅读模式
#include<iostream>
#include<ctime>
using namespace std;
int main()
{   int i;
      for( i=0;i<3;i++)
     {
     srand((unsigned)time(NULL));
     i=rand();
     cout<<"i is "<<i<<'\n';;
     }

  return 0;
}
这个程序用来产生三个随机数,但是我的总是只有一行输出呢?还有srand((unsigned)time(NULL))是什么意思呢?我发现加了这个语句之后,产生的随机数是越大越大的而不是真正随机的数,这又是什么原因呢?谢谢
发表于 2006-5-11 15:17 | 显示全部楼层
在TC编译器中,srand()函数是用来初始化种子的。而time()函数是用于获取日历时间的,楼主参数用NULL,那么获取的是当前日历时间,就是从1970年1月1日0时0分0秒到现在的秒数。因此,越往后这个种子就越大。另外,如果不初始化种子,那么经过32767还是32768(忘记了,不好意思)个数后会产生重复现象。至于你的随机数为什么会越来越大,看完上面描述您应该都明白了吧?
回复

使用道具 举报

 楼主| 发表于 2006-5-11 23:23 | 显示全部楼层
明白  谢谢啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-8-30 23:37

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表