做了老半天还是出不来,望大神指点。
谢谢啦[ 本帖最后由 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; }