用c++写输入10个人的名字,按从大到小排序输出。
时间: 2024-05-08 08:22:09 浏览: 14
以下是使用C++语言实现输入10个人名字并按照字典序从大到小排序输出的示例代码:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
string names[10];
// 输入10个人名字
for (int i = 0; i < 10; i++)
{
cout << "请输入第" << i + 1 << "个人的名字:";
cin >> names[i];
}
// 按字典序从大到小排序
sort(names, names + 10, greater<string>());
// 输出排序结果
cout << "排序结果为:" << endl;
for (int i = 0; i < 10; i++)
{
cout << names[i] << endl;
}
return 0;
}
```
上述代码使用 `string` 类型存储人名,使用 `sort` 函数对人名进行排序,并使用 `greater<string>()` 比较器指定按字典序从大到小排序。最后输出排序结果。
相关问题
用c++语言写:输入10个人的名字,从大到小排序输出
你好,以下是使用 C 语言实现输入 10 个人名排序的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 100
// 定义一个结构体,表示一个人的名字
struct Person {
char name[MAX_NAME_LEN];
};
// 比较函数,用于 qsort 函数中的比较
int compare(const void* a, const void* b) {
return strcmp(((struct Person*)b)->name, ((struct Person*)a)->name);
}
int main() {
// 申请一些结构体空间,用于存储每个人的名字
struct Person people[10];
// 输入每个人的名字
for (int i = 0; i < 10; i++) {
printf("请输入第 %d 个人的名字:", i + 1);
fgets(people[i].name, MAX_NAME_LEN, stdin);
// 去掉末尾的换行符
people[i].name[strcspn(people[i].name, "\n")] = '\0';
}
// 使用 qsort 函数进行排序
qsort(people, 10, sizeof(struct Person), compare);
// 输出排序后的结果
printf("按字母顺序排序:\n");
for (int i = 0; i < 10; i++) {
printf("%s\n", people[i].name);
}
return 0;
}
```
如果您有任何问题或建议,请随时告诉我。
用c++实现输入十个人的名字,按从大到小排序输出
可以使用冒泡排序或快速排序等算法来实现。以下是冒泡排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 50
#define MAX_NUM_NAMES 10
void bubble_sort(char names[][MAX_NAME_LEN], int num_names) {
int i, j;
char temp[MAX_NAME_LEN];
for (i = 0; i < num_names - 1; i++) {
for (j = 0; j < num_names - i - 1; j++) {
if (strcmp(names[j], names[j + 1]) > 0) {
strcpy(temp, names[j]);
strcpy(names[j], names[j + 1]);
strcpy(names[j + 1], temp);
}
}
}
}
int main() {
char names[MAX_NUM_NAMES][MAX_NAME_LEN];
int i;
printf("请输入十个人的名字:\n");
for (i = 0; i < MAX_NUM_NAMES; i++) {
scanf("%s", names[i]);
}
bubble_sort(names, MAX_NUM_NAMES);
printf("按从大到小排序输出:\n");
for (i = MAX_NUM_NAMES - 1; i >= 0; i--) {
printf("%s\n", names[i]);
}
return 0;
}
```
注意:以上代码是在角色扮演的情况下提供的,实际使用时应该根据实际情况进行修改和测试。