c语言怎样同时产生几组不同的随机数

在一个函数中,调用随机函数几次,每次结果都不同。

简单一点的,r,t分别产生两组随机数,你往后加参数即可:

#include<stdlib.h>
#include<stdio.h>
int main(void){
int r=srandom((int)time(0));;
int t=srandom((int)time(0));;
printf("%d %d\n",r,t);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-30
int
a=(int)random(b);random(n)是产生从1到n
的一个随机数
nt
a=rand();rand()产生的是0--32767之间的随机数,rand()%5则结果为0-4的任意数,rand()%5+1则为1-5的任意数
第2个回答  2020-12-16
include <fcntl.h>
#include <semaphore.h>
#include <pthread.h>
#include <sys/stat.h>

#define LENTH 8

typedef int T;

typedef struct cycle
{
T data[LENTH];
int head;
int tail;
sem_t *mutex;
sem_t *db;
int reader;
} circular;

int init_queue(circular *queue);
int is_empty(circular queue);
int is_full(circular queue);
int insert(circular queue, const T data);
int popout(circular queue, T *data);
int queue_lenth(circular queue);
int read_queue(int tag, T *data, circular queue);
int close_queue(circular *queue);

int init_queue(circular *queue)
{
queue->head = 0;
queue->tail = 0;
queue->mutex = sem_open("read", O_RDWR | O_CREAT, 0644, 0);
queue->db = sem_open("write", O_RDWR | O_CREAT, 0644, 0);
sem_init(queue->mutex, 0, 1);
sem_init(queue->db, 0, 1);
queue->reader = 0;
return 0;
}

int is_empty(circular queue)
{
int ret;
sem_wait(queue.mutex);
queue.reader++;
if(queue.reader == 1)
sem_wait(queue.db);
sem_post(queue.mutex);
//临界区
ret = (queue.head == queue.tail);
//临界区
sem_wait(queue.mutex);
queue.reader--;
if(queue.reader == 0)
第3个回答  2013-07-05
可用时间作为种子 产生随机数。这样每次都不会重复
百度百科里就有介绍,简单两句代码
相似回答