舞伴问题(1027)

描述

假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序实现舞伴问题。

input

输入一共5行, 
第一行是男生人数m; 
第二行依次是男生的姓名; 
第三行是女士的人数n; 
第四行依次是女士的姓名; 
第五行是跳舞的轮数。

output

配对的男士和女士的姓名。

样例输入

5
A B C D E
3
F G H
2


样例输出

B G

很多人开始不理解这道题是什么意思,其实这道题表达的意思非常简单,就拿样例来说,跳舞配对的方式应该是AF,BG,CH然后女士轮完了开始下一轮DF,EG。。以此类推。

具体代码如下

 1 #include<iostream>
 2 using std::cin;
 3 using std::cout;
 4 using std::endl;
 5  
 6 struct people{
 7     int head;
 8     int lenth;
 9     char memb[100];
10 }boy,girl;
11 int main(){
12     boy.head=1;
13     girl.head=1;
14     int i;
15     cin>>boy.lenth;
16     for(i=1;i<=boy.lenth;i++){
17         cin>>boy.memb[i];
18     }
19         cin>>girl.lenth;
20     for(i=1;i<=girl.lenth;i++){
21         cin>>girl.memb[i];
22     }
23     int time;
24     cin>>time;
25     for(i=0;i<time-1;i++){
26         boy.head++;
27         girl.head++;
28         if(boy.head>boy.lenth){
29             boy.head=1;
30         }
31             if(girl.head>girl.lenth){
32             girl.head=1;
33         }
34     }
35     cout<<boy.memb[boy.head]<<" "<<girl.memb[girl.head];
36     return 0;
37 }
原文地址:https://www.cnblogs.com/swust-wangyf/p/6725985.html