此问题在此处已有答案:
rand() generating the same number [duplicate](3个答案)
srand() — why call it only once?(7个答案)
16天前关闭。
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
int main(){
for(int i = 0; i <= 4; i = i + 1) {
int p1;
p1 = fork();
wait(NULL);
int plato;
plato = rand()%2;
int cant;
cant = rand()%6 + 1;
int cant1;
cant1 = rand()%4 + 1;
if (p1 == 0) {
if (plato = 0){
if (cant > 0){
printf("\nMesero %d, PPID=%d, pedido de %d postre/s", (i) ,getppid(), cant);
printf (", PID=%d\n", getpid());
}
exit(0);
} else if (plato = 1){
printf("\nMesero %d, PPID=%d, pedido de %d plato/s de alboniga/s", (i) ,getppid(), cant1);
printf (", PID=%d\n", getpid());
exit(0);
}
} else if (p1<0) {
printf("ERROR");
}
}
return 0;
}
答案总是一样的,我需要不同的答案
我想生成一个随机类型的“Platos”,如果它们是甜点或菜肴,则生成一个随机数量
1条答案
按热度按时间4zcjmb1e1#
#include <time.h>
,并作为main()
中的第一条语句执行srand(time(NULL));
。只要你的程序执行间隔超过1秒,这将创建一个新的伪随机整数序列。在Linux上,/dev/random(阻塞)和/dev/urandom(非阻塞)是熵的替代来源。