班级有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;就可以了,代表这个题已经被抽了追问谢谢
#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的,
再给下一位同学赋值追问我觉得是这样,但是可以写一下程序吗
我想的是,建立一个100个的题目数组,给题目数组顺序赋值1,2,3,4,5。。。
然后顺序给60位同学数组赋值,
随机数产生
在题目数组里拿到一个数,并将该位赋值0,下次抽取的时候检查它是不是0就能知道有没有被抽过,被抽过的话就再生成一次随机数,直到有不为0的,
再给下一位同学赋值追问我觉得是这样,但是可以写一下程序吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯