C++题目51: 对英文名字进行排序 输入5个英文人名,对人名进行排序输出(字典序,升序)。 【输入形式】 5个英文人名 【输出形式】 排序后的人名
时间: 2024-02-28 14:56:37 浏览: 86
好的,这是一个简单的排序问题,可以使用C++中的sort函数进行排序。以下是代码实现:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string names[5];
cout << "请输入5个英文人名:" << endl;
for(int i=0; i<5; i++)
{
cin >> names[i];
}
sort(names, names+5);
cout << "排序后的人名为:" << endl;
for(int i=0; i<5; i++)
{
cout << names[i] << endl;
}
return 0;
}
```
运行结果:
```
请输入5个英文人名:
Tom Jerry Alice Bob David
排序后的人名为:
Alice
Bob
David
Jerry
Tom
```
相关问题
. C++题目52:按名字长度对英文名字进行排序 输入5个英文人名,对人名进行排序输出(名字长度,如果长度相同,按照字典序,升序)。
好的,这是一个简单的排序题目,可以使用C++的STL库中的sort函数来实现。以下是示例代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool cmp(string a, string b) {
if (a.length() == b.length()) {
return a < b;
}
return a.length() < b.length();
}
int main() {
string names[5];
for (int i = 0; i < 5; i++) {
cin >> names[i];
}
sort(names, names + 5, cmp);
for (int i = 0; i < 5; i++) {
cout << names[i] << endl;
}
return 0;
}
```
在这个程序中,我们首先定义了一个名为`cmp`的比较函数,用于排序时比较两个字符串的长度和字典序。然后我们使用一个`for`循环来读入5个英文人名,并使用`sort`函数对这5个人名进行排序。最后我们再使用一个`for`循环输出排序后的结果。
希望这个答案能够帮到你!
C++题目52:按名字长度对英文名字进行排序 输入5个英文人名,对人名进行排序输出(名字长度,如果长度相同,按照字典序,升序)。 【输入形式】 5个英文人名 【输出形式】 排序后的人名 【样例输入】 Bob Candy Andy Elle David 【样例输出】 Bob Andy Elle Candy David
这是一个稍微复杂一点的排序问题,需要自定义比较函数来进行排序。以下是 C++ 的代码实现:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(string a, string b) {
if (a.size() != b.size()) { // 长度不同,按长度升序排列
return a.size() < b.size();
} else { // 长度相同,按字典序升序排列
return a < b;
}
}
int main() {
vector<string> names; // 存储人名的容器
string name;
for (int i = 0; i < 5; i++) {
cin >> name;
names.push_back(name);
}
sort(names.begin(), names.end(), cmp); // 使用自定义比较函数进行排序
for (auto it = names.begin(); it != names.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
```
运行结果:
```
Bob Candy Andy Elle David
Bob Andy Elle Candy David
```
阅读全文