问题描述:
想要生成一幅扑克牌,数字为1-13,图案为0-3, 随机组合产生52张牌。
拆解:生成4组1-13随机+生成13组0-3随机(就是说52个牌中数字1共4个,2共四个。。。13共四个,花色:0共13个,1共13个。。。3共13个,再组合起来)
生成times组1-num的随机数列:
(核心代码)
int* randomEcho(int num,int times){
//avoir un arr qui inclure des nombres ne sont pas pareil de 1 a num
//生产time次1-num,如num为5,time为4,则生成20个随机数,1-5都出现四次
srand((unsigned)time(NULL));
int arr=malloc(sizeof(int)numtimes);
for(int i=0;i<numtimes;i++){
//产生随机数
arr[i]=rand()%num+1;
int count=1;
for(int q=0;q<i;q++){
//加上这个数一共有多少个
if(arr[q]arr[i]){
count+=1;
}
}
//若超过了则重新生成
if(counttimes+1){
printf("----%d—%d\n",arr[i],times);
int temp=arr[i];
while(arr[i]==temp){
arr[i]=rand()%num+1;
}
count=0;
}
}
for(int m=0;m<num*times;m++){
printf("%d ",arr[m]);
}
putchar(’\n’);
return arr;
}
用链表使用后: