求助c语言实现抽奖程序
本帖最后由 荼蘼== 于 2022-6-27 21:11 编辑1、流程:从 M 个人中随机抽出 N 个人“中奖”
1)M个人的信息至少包含“编号”“姓名”
2)本轮抽中的人要退出下一轮“抽奖”(下一轮不能出现)
3)抽出的 N 个人应该均匀的分布在 M 个人中(不能扎堆)
4)每轮抽奖命中概率应为 1/(M-X),X为已经抽中的人数
注:设 rand 函数为 0~ RAND_MAX 之间的均匀分布
2、输入输出要求
1)输入的 M 个人从文件 candidate.txt 读取
文件的每一行形式:学号, 姓名
预设文件中的每一行都是按照学号升序排列的
如:
20191235, 小李
20191236, 小王
20191237, 小张
20191238, 小刘
2)命令行输入抽取的中奖人数 N
3)按抽中顺序屏幕打印 N 个人的姓名
如:
中奖人1:小张,20191237
中奖人2:小李,20191235
4)按编号顺序将 N 个中将人信息写到 lucky.txt 文件
文件的每一行形式:学号, 姓名
要求:写入的学号也要按照升序排列
如:
20191235, 小李
20191237, 小张
3、功能实现要求
1)用结构体定义候选人信息
struct node
2)用递归方式匹配中奖人
struct node *pop(struct node *p, int i)
i 为中奖人序号
3)定义合适的数据结构管理候选人
不允许使用C++的STL模板类 有没有大佬能救救孩子{:10_299:} 荼蘼== 发表于 2022-6-27 09:47
有没有大佬能救救孩子
抽奖用递归这东西不稳定,建议rand()去做,重了就再来一轮
页:
[1]