注册 登录
编程论坛 C++教室

随机函数头文件

逆水寒刘 发布于 2013-04-21 19:07, 2064 次点击
我就是想编个返回一个随机整数的头文件
#include<iostream>
#include<ctime>
using namespace std;
int random(int m)
{
    time_t time(0);
    srand( (unsigned)time(NULL) ) ;/*error C2064: term does not evaluate to a function?神魔意思啊,time(0)不也是个随机数吗?
        int k=rand()%m+1;
        return k;
}
srand 处出错了。而去掉第六行time(0),的定义,换成NULL就行了,这是为什么啊,不懂,求指教?

5 回复
#2
邓士林2013-04-21 21:56
要初始化吧
#3
azzbcc2013-04-22 07:59
time_t time(0);
srand( (unsigned)time(NULL) ) ;

这两个语句本身没有问题,放一起就有问题了

time_t time(0);    //这里 time是一个变量,并初始化为 0
srand( (unsigned)time(NULL) ) ;    //这里time本应是一个函数,但是已经被定义为变量,所以出错了

把上面那行注释掉,或者去掉 (NULL)就可以了

不过要实现随机种子,还是去掉第一行好
#4
逆水寒刘2013-04-22 22:50
回复 3楼 azzbcc
这里我看过把NULL替换为time(0)时为什么不行啊?这里time(0)不也是个时间变量吗?
#5
azzbcc2013-04-23 08:19
int a(5);  // a(5)是变量? a才是变量,5是给 a赋值
#6
lz10919149992013-04-23 14:30
time_t t;
time(&t);
srand((unsigned)t));
return rand() % m + 1;
1