做了老半天还是出不来,望大神指点。
谢谢啦[ 本帖最后由 a792006252 于 2014-5-28 16:31 编辑 ]
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
//程序目的:随机排座位
int main(void)
{
srand((unsigned)time(NULL));
int sum=0;
printf("请输入学生总人数:");
scanf("%d",&sum);
int* st=(int*)malloc(sizeof(int)*sum);
int index=0;
while(1)
{
beg:
st[index]=rand()%(sum+1);
if(st[index]==0) goto beg;
for(int i=0;i<index;i++) if(st[index]==st[i] && index>0) goto beg;
index++;
if(index==sum) break;
}
for(index=0;index<sum;index++) printf(" %d ",st[index]);
printf("\n");
free(st);
return 0;
}

程序代码:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 4
//程序目的:随机分配抽签号
int main(void)
{
int i,j;
srand((unsigned)time(NULL));
int team[N];
int sequence[N];
for(i=0;i<N;i++)
{
while(1)
{
sequence[i]=rand()%(N+1);
team[i]=sequence[i];
for (j=0;j<i+1;j++)
{
if((team[i]==team[j])&&i!=j)
break;
else
{
goto beg;
}
}
}
beg:
printf("队伍team[%d]对应的序号是%d\n",i,sequence[i]);
}
return 0;
}
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5 //设置需要分配抽签号的组为N
//程序目的:随机分配抽签号
int main(void)
{
int i,j;
srand((unsigned)time(NULL));
int team[N];
int sequence[N];
for(i=0;i<N;i++)
{
beg:
while(1)
{
sequence[i]=rand()%N; //随机分配抽签号范围在0-N-1
team[i]=sequence[i];
for (j=0;j<i+1;j++) //循环遍历已得到的抽签号
{
if((team[i]==team[j])&&i!=j) //如果现在分配的抽签号与之前分配的抽签号相同,则重新分配
goto beg;
}
break; //如果现在分配的抽签号与之前分配的抽签号都不相同,则跳出while循环,执行printf函数
}
printf("队伍team[%d]对应的序号是%d\n",(i+1),(sequence[i]+1));
}
return 0;
}