error C2065: 'rand' : undeclared identifier

我用C语言编写的程序,用TURB C++编译能通过了,可是用VC6.0编译的时候提示错误 error C2065: 'rand' : undeclared identifier 哪位高手能帮忙解决啊。。不胜感激
源代码:
#include "stdio.h"
void main()
{
int Q1=10,Q2=10,D=0,A=0,R=0,t=0,s;
int x1=3,x2=7,u1,u2,T1=2,T2=3,Tg=20;
loop:
printf("please enter t:");
scanf("%d",&t);
t=t+1;
u1=rand()%1000;
while (u1<=x1)
Q1=Q1+1;
u2=rand()%1000;
while (u2<=x2)
Q2=Q2+1;
if (t>R)
{
s=0;
if (Q1>0)
{
Q1=Q1-1;
A=A+1;
s=1;
R=t+T1;
}
else if (Q2>0)
{
Q2=Q2-1;
D=D+1;
s=2;
R=t+T2;
}
goto loop;
}
else
printf("Q1=%d,Q2=%d,D=%d,A=%d,t=%d,s=%d,R=%d",Q1,Q2,D,A,t,s,R);
switch (t=Tg)
{
case 1:break;
case 0:goto loop;
}
}
我在u1=rand()%1000之前添加函数声明int rand(void);后,编译已经能通过了。可是连接还是不能通过。提示错误
Linking...
main.obj : error LNK2001: unresolved external symbol "int __cdecl rand(void)" (?rand@@YAHXZ)
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/模拟机场.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.

这是编译器不同造成的结果,rand()(不知道是否是产生随机数) 方法所在类 可能在TURB C++被编译器自动引用, 而VC6.0就不会自动引用 必须显示的 include<xxx.h> 或者include"xxx.cpp"(我觉得应该是#include <stdlib.h>
和#include<time.h>(后者保证每次的随机数不一样)) 将文件包含进来就可以啦! 如果rand()方法是自己写的 在vc6.0中一定要先于main函数定义一下。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-08
你没有导入头文件
在编译的时候 并不会查到这类错误
在运行的时候就会发现
查找不到此头文件
把这个#include <stdlib.h>
打进去就OK了本回答被网友采纳
第2个回答  2009-06-08
#include <stdlib.h>
相似回答