输出20组0~23的随机排列
我想输出20组0~23的随机排列,但是有的时候输的出来,有的时候输不出来,请高手帮忙。以下是代码:
#include <stdio.h>
# include <stdlib.h>
# include <time.h>
# include "iostream.h"
main()
{
int J[50],Pop[50][50];
int n=23;
int a,d,l,m;
J[0]=1;
for(d=0;d<20;d++)
Pop[d][0]=1;
srand((unsigned)time(NULL));
for(d=0;d<20;d++)
{
for(m=1;m<n;m++) /*循环生成随机数,并存取在数组J[]中*/
{
loop: a=rand()%n+1;
for(l=0;l<=m;l++) /*把后一个生成的数和前面的数一一对比,若是有相同的GOTO LOOP再产生*/
{
if(a==J[l])
goto loop;
}
J[m]=a; /*船舶泊位分配方案*/
Pop[d][m]=J[m]; /*获得初始群体*/
}
}
for(d=0;d<20;d++)
{
for(m=0;m<n;m++)
printf("%d,",Pop[d][m]);
printf("\n");
}
}