永发信息网

班级有60个同学,有100道题,用C语言随机给班级同学每人出一题,要求不能重复,怎么做到的啊😳

答案:2  悬赏:30  手机版
解决时间 2021-03-27 00:50
  • 提问者网友:黑米和小志
  • 2021-03-26 01:20
班级有60个同学,有100道题,用C语言随机给班级同学每人出一题,要求不能重复,怎么做到的啊😳
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-03-26 02:45
#include
#include
#include

int chosen[100]; //标记某个题有没有被选 

int main()
{
int student = 1; //同学编号 
int temp; //题号 
srand((unsigned)time(NULL));
while(student <= 60)
{
temp = rand()%100;
while(chosen[temp])
temp = rand()%100;
printf("%d号同学做%d号题
",student,temp + 1);
student++;
}
return 0;
}追问还是有一点重复的呀,可以避免吗??追答在printf下面加入一行 chosen[temp] = 1;就可以了,代表这个题已经被抽了追问谢谢
全部回答
  • 1楼网友:神鬼未生
  • 2021-03-26 03:34
结合楼上的回答,
我想的是,建立一个100个的题目数组,给题目数组顺序赋值1,2,3,4,5。。。
然后顺序给60位同学数组赋值,
随机数产生
在题目数组里拿到一个数,并将该位赋值0,下次抽取的时候检查它是不是0就能知道有没有被抽过,被抽过的话就再生成一次随机数,直到有不为0的,
再给下一位同学赋值追问我觉得是这样,但是可以写一下程序吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯