C++题目52:按名字长度对英文名字进行排序 输入5个英文人名,对人名进行排序输出(名字长度,如果长度相同,按照字典序,升序)。 【输入形式】 5个英文人名 【输出形式】 排序后的人名 【样例输入】 Bob Candy Andy Elle David 【样例输出】 Bob Andy Elle Candy David
时间: 2023-12-01 15:03:40 浏览: 135
好的,这是一个比较常见的排序问题。下面是C++程序的实现:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool cmp(string a, string b) // 自定义比较函数
{
if(a.size() == b.size()) // 如果名字长度相同
{
return a < b; // 按字典序升序排序
}
else
{
return a.size() < b.size(); // 按名字长度升序排序
}
}
int main()
{
string names[5]; // 存储5个英文人名
cout << "请输入5个英文人名:" << endl;
for(int i = 0; i < 5; i++)
{
cin >> names[i];
}
sort(names, names + 5, cmp); // 对人名进行排序
cout << "排序后的人名为:" << endl;
for(int i = 0; i < 5; i++)
{
cout << names[i] << " ";
}
cout << endl;
return 0;
}
```
输入样例:
```
Bob Candy Andy Elle David
```
输出样例:
```
排序后的人名为:
Bob Andy Elle Candy David
```
希望能够帮到你!
阅读全文