跳舞配对问题 一、任务 一班有m个女生,有n个男生(m不等于n),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上,每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴。配对成功的舞伴跳完舞后排回各自队伍的最后。 请设计一系统模拟动态地显示出上述过程,要求输出计算任何一个女生(编号为X)和任意男生(编号为Y)第一次配对跳舞的舞曲编号K。 输入什么数据,会出现100支舞曲内X和Y都不能成功配对跳舞的情况?尝试一下。 二、程序分析 1.男生和女生依次排队,排在对头的男生和排在对头的女生先配对,舞曲结束排到各自的队尾。因此该问题具体有典型的先进先出特性,可用队列作为数据的存储方式。 2.算法需要两个队列,分别是存放男生队列和女生队列,每跳一支舞曲则是一次男女队列的出队列和入队列。 3.初始化时男生、女生队列的值分别为他们的编号序列。 4.解决该问题的方法与实验5类似,将每次配对的女生和男生编号与指定编号比较,相等则目前该舞曲是需要计算的舞曲。注意舞曲的数目必须限制在一定的范围内,避免死循环。例如在100支舞曲内,X和Y都没有配对跳舞,则输出不可能配对成功。 三、调试测试 1.输入:按提示输入女生和男生的人数,以及希望配对跳舞的女生编号和男生编号。 2.输出:X女生和Y男生配对跳舞成功,并且输出当前X和Y首次配对跳舞的舞曲序号K。 本文来源:https://www.wddqw.com/doc/e781fa3e376baf1ffc4fad56.html