c语言做学号抽签程序,不要有重复抽到同一个人

如题所述

#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 50 //班级人数
void main()
{
int n;
srand(time(0)); //获取当前时间作为种子,保证每次产生随机数的种子不同
n=rand()%N;
printf("\n\n你被选中啦:\n");
printf(">%3d号\n\n\n",n);

system("pause");
}追问

有重复情况,而且怎么按学号查啊。。。

追答

啥意思,重复可以改,什么叫怎么按学号查。。

追问

这个抽出来的数是1~50,但想要抽出来显示的号是学号,学号不是连续的例如:张三的学号01下一个人李四的学号是03。麻烦了。

追答

好吧那这样可以了吧?
每个人都能被选到不重复,然后班级人数和学号你自己来输
#include
#include
#include
#define N 9 //班级人数
void main()
{
int i,j=N;char n='1';
int num[N]={1,2,3,4,5,6,7,8,9}; //学号
srand(time(0));
while(n!='0'&&j!=0)
{ j--;
i=rand()%N;
if(num[i]!=0)
{printf("\n\n你被选中啦:\n");
printf(">%3d号\n\n\n",num[i]);
num[i]=0;
printf("输入0结束,其他键继续:");
scanf("%c",&n);
getchar();}
else j++;
}

system("pause");
}

温馨提示:答案为网友推荐,仅供参考
相似回答