鱼C论坛

 找回密码
 立即注册
查看: 116|回复: 2

求助c语言实现抽奖程序

[复制链接]
发表于 2022-6-23 15:13:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 荼蘼== 于 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模板类
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 4 天前 | 显示全部楼层
有没有大佬能救救孩子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 4 天前 | 显示全部楼层
荼蘼== 发表于 2022-6-27 09:47
有没有大佬能救救孩子

抽奖用递归这东西不稳定,建议rand()去做,重了就再来一轮
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2022-7-1 15:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表