首页 > 代码库 > 舞伴问题(1027)

舞伴问题(1027)

<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>

描述

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

input

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

output

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

样例输入

5
A B C D E
3
F G H
2


样例输出

B G

 

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

 

具体代码如下

 

#include<iostream>

using std::cin;
using std::cout;
using std::endl;
 
struct people{
    int head;
    int lenth;
    char memb[100];
}boy,girl;
int main(){
    boy.head=1;
    girl.head=1;
    int i;
    cin>>boy.lenth;
    for(i=1;i<=boy.lenth;i++){
        cin>>boy.memb[i];
    }
        cin>>girl.lenth;
    for(i=1;i<=girl.lenth;i++){
        cin>>girl.memb[i];
    }
    int time;
    cin>>time;
    for(i=0;i<time-1;i++){
        boy.head++;
        girl.head++;
        if(boy.head>boy.lenth){
            boy.head=1;
        }
            if(girl.head>girl.lenth){
            girl.head=1;
        }
    }
    cout<<boy.memb[boy.head]<<" "<<girl.memb[girl.head];
    return 0;
}

舞伴问题(1027)