求助一道关于抽签的程序
最近论坛搞比赛,64个人的淘汰赛,想做个抽签程序把64个人随机分位,思路就是做一个存入1到64数字的数组,然后对其进行随机排序,但是做了几次都错成鬼了,这里向各位高手求教正确的程序代码,谢谢
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[64],b[64];
int i,m,k;
int count=0;
for(m=0;m<=63;m++)
b[m]=0;
srand((int)time(0));
for(i=0;i<=63;i++)
{ while(1){ k=(rand()%64);
if(b[k]==0)
{ a[i]=k;
b[k]=1;
goto gg; /*有什么好的办法解决这个语句没?求助!!*/
}
}
gg: printf("%d",a[i]);
printf(" ");
count=count+1;
if(count%3==0)printf("\n");/*x为分组数*/
}
system("pause");
}
方法有点笨,就是产生一个0-63的不重复的随机数,然后输出,没想到别的方法,高手们指教一下啊,这个方法速度上肯定是不行的,呵呵,判断重复的那块无用工作的很多,
有更好的办法希望能写出来,学习学习
[[italic] 本帖最后由 devil_v6 于 2008-1-26 10:31 编辑 [/italic]]