c++完成假设在周未舞会上,男土们和女士们进舞厅时,各自排成一以。班舞开始时,依次从男队和女队的队头上各出一人配成舞件,若两队初人数不相同,则较长的那一从中未图阿者等持下一教舞盘要求编写程序实现舞伴问题。 输入 输入一共5行,第一行是男生人数;第二行依次是男生的姓名;第三行是女士的人数n;第四行依次是女士的姓名;第五行是跳舞的轮数。 输出 配对的男士和女士的姓名。 样例输入制 5 样例输出制 B G ABCDE 8 F G H 2
时间: 2024-02-22 17:55:26 浏览: 120
以下是使用 C++ 语言,使用队列实现舞伴配对问题的代码实现:
```c++
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main() {
int num_males, num_females, n;
string male, female;
queue<string> male_queue, female_queue;
// 输入男生人数和姓名
cin >> num_males;
for (int i = 0; i < num_males; i++) {
cin >> male;
male_queue.push(male);
}
// 输入女生人数和姓名
cin >> num_females;
for (int i = 0; i < num_females; i++) {
cin >> female;
female_queue.push(female);
}
// 输入跳舞的轮数
cin >> n;
// 进行舞伴配对
for (int i = 0; i < n; i++) {
if (male_queue.empty() || female_queue.empty()) {
break;
}
male = male_queue.front();
male_queue.pop();
female = female_queue.front();
female_queue.pop();
cout << male << " " << female << endl;
}
// 输出剩余男生和女生姓名
if (!male_queue.empty()) {
cout << "Remaining males: ";
while (!male_queue.empty()) {
cout << male_queue.front() << " ";
male_queue.pop();
}
cout << endl;
}
if (!female_queue.empty()) {
cout << "Remaining females: ";
while (!female_queue.empty()) {
cout << female_queue.front() << " ";
female_queue.pop();
}
cout << endl;
}
return 0;
}
```
输入示例:
```
5
A B C D E
8
F G H I J K L M
2
```
输出示例:
```
A F
B G
Remaining females: H I J K L M
```
以上代码只是基本实现,可以根据实际需求进行改进和完善。
阅读全文