C语言时间与随机数问题

我有两个问题希望高手能解答~谢谢!1.C语言的随机数程序要怎么写?(最好是适用于win-TC的,希望有能写的完整一点的)2.我想写一个在规定时间内要输入一个数字(如果在规定时间内输入数字进入下一步,否则进入另外一步)的程序,不知道是否能够实现。请高手指教。。。(最好是适用于win-TC的,希望有能写的完整一点的)在此先谢谢给为大哥大姐!!!1.对不起。。。我没说清楚,第一个问题我如果要在0-100内产生随机数要怎么写?除了你写出的程序外,我要不要再调用比如#include "conio.h"之类的文件(我也不知道这个是不是叫文件,反正就是在主函数之前都要写的那个)2.那个貌似win-TC版本没有开头的那几个文件。。。所以运行不了,linux那个软件,我没用过,我想问这个程序如果在VC下能不能运行?
2026年09月27日 02:08
有4个网友回答
网友(1):

1.先用srand()来形成随机种子,再用rand()来形成随机数.每次srand的参数最好不同,所以时间是一个常用的参数.
比如:
int r;
srand(time(NULL));
r=rand();
获得1-100之间的数:r=rand()%100+1;
头文件:#include

2.我以前在linux下写过类似的,用select实现的,加点注释发上来.后4个头文件都是linux下的,删掉之后看看没有定义的东西找一下在windows的哪个头文件里应该就可以.

我改一下,由于我这里没windows编程环境,所以不一定对.你碰见什么问题发上来看看.
#include
#include

int main()
{
fd_set set;
char buff[100] = {0};
int ret;
struct timeval tv;
tv.tv_sec = 10;
tv.tv_usec = 0;//这3句设置了10秒的超时时间.要修改的话tv.tv_sec = 10表示的是超时时间里的秒,tv.tv_usec = 0表示的是超时时间里的微秒.
FD_ZERO(&set);
FD_SET(0,&set);
ret = select(2,&set,NULL,NULL,&tv);
if(ret == 0)//select返回值等于0说明这段时间内有0个描述符可读,也就是超时了
{
printf("out of time\n");
}
else
{
read(0,buff,100);
printf(buff);
}
}

网友(2):

/* 产生整数1到MAX之间的NUM个随机数 */

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define NUM 30
#define MAX 80

main()
{ int i,m,n,a[NUM];
printf("Random number:\n");
n=0;
randomize(); /*产生随机数种子初始化*/
while(n!=NUM)
{ m=random(MAX)+1;
for(i=0;i if(i==n) a[n++]=m;
}
for(i=0;i { printf("%02d ",a[i]);
if(i%10==9)printf("\n");
}
getch();
}

网友(3):

楼上的太难了,用我的就好:

#include
#include
main()
{
int i,j;
for(i=0;i<100;i++)
{
j=1+(int)(100.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
//system("pause");
}

网友(4):

1.#include
#include
main()
{
int j;
j=rand()%101;
printf("%d",j);
}
2.能