利用指针对十个名字进行排序
时间: 2023-06-16 09:05:06 浏览: 47
好的,我来给您写一下代码。
假设我们有十个名字,存储在一个字符串数组中。那么可以使用指针数组来进行排序。
具体步骤如下:
1. 定义一个指针数组,数组的每个元素指向字符串数组中的一个名字。
2. 使用冒泡排序法对指针数组进行排序。排序时比较的是指针所指向的字符串。
3. 排序完成后,指针数组中的元素顺序就对应着字符串数组中名字的顺序。
下面是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define NAME_LEN 20
#define NUM_NAMES 10
int main() {
char names[NUM_NAMES][NAME_LEN] = {"Alice", "Bob", "Charlie", "David", "Emma", "Frank", "George", "Helen", "Ivan", "Jack"};
char *name_ptrs[NUM_NAMES];
int i, j;
// 将指针数组中的元素指向字符串数组中的名字
for (i = 0; i < NUM_NAMES; i++) {
name_ptrs[i] = names[i];
}
// 冒泡排序
for (i = 0; i < NUM_NAMES - 1; i++) {
for (j = 0; j < NUM_NAMES - 1 - i; j++) {
if (strcmp(name_ptrs[j], name_ptrs[j + 1]) > 0) {
char *temp = name_ptrs[j];
name_ptrs[j] = name_ptrs[j + 1];
name_ptrs[j + 1] = temp;
}
}
}
// 输出排序结果
for (i = 0; i < NUM_NAMES; i++) {
printf("%s\n", name_ptrs[i]);
}
return 0;
}
```
输出结果如下:
```
Alice
Bob
Charlie
David
Emma
Frank
George
Helen
Ivan
Jack
```
希望能对您有所帮助!
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)