多人姓名排序(c++实现) 我们经常看到“按姓氏笔画排序”。现在我们来做一个按 姓名拼音顺序(字典顺序)排序。 输入多人的姓名进行 比较,按从小到大的顺序输出。 【输入要求】第一行输入人数n。 第二行起n行,每行为英文单词或中文拼音(字符串)。 【输出要求】输出n行,先输出序号,然后将这多个字符 串按从小到大的顺序输出。 【输入样例】 5 mouse elephant cat dog bird 【输出样例】 1 bird 2 cat 3 dog 4 elephant 5 mouse
时间: 2024-04-17 10:27:58 浏览: 233
您可以使用C++中的标准库函数`sort`来实现姓名的排序。首先,将输入的姓名存储在一个`vector<string>`中,并为每个姓名添加对应的序号。然后,使用`sort`函数对姓名进行排序,排序的依据是字符串的字典顺序。最后,按照排序后的顺序输出姓名和对应的序号。
以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
bool compare(const std::pair<int, std::string>& a, const std::pair<int, std::string>& b) {
return a.second < b.second;
}
int main() {
int n;
std::cin >> n;
std::vector<std::pair<int, std::string>> names;
for (int i = 0; i < n; i++) {
std::string name;
std::cin >> name;
names.push_back(std::make_pair(i + 1, name));
}
// 按姓名进行排序
std::sort(names.begin(), names.end(), compare);
// 输出排序后的结果
for (const auto& pair : names) {
std::cout << pair.first << " " << pair.second << std::endl;
}
return 0;
}
```
使用上述代码,您可以按照题目要求对姓名进行排序并输出结果。注意,代码中的`compare`函数用于指定姓名的比较规则,即按照字符串的字典顺序进行比较。
阅读全文