)输入姓名/微信名/QQ名,用指针代替下标的方法由小到大顺序输出。比较时,请使用函数调用的方法。(提示:字符串比较使用strcmp函数)用C语言
时间: 2024-03-20 08:41:49 浏览: 135
好的,我能理解您的问题。以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 100 // 定义最大名字长度
void sort_names(char* names[], int n); // 声明排序函数
int main()
{
int n;
printf("请输入名字的数量:");
scanf("%d", &n);
char* names[n]; // 定义名字指针数组
printf("请依次输入名字:\n");
for (int i = 0; i < n; i++)
{
char* name = (char*)malloc(sizeof(char) * MAX_NAME_LEN); // 动态分配内存
scanf("%s", name);
names[i] = name; // 将名字添加到指针数组中
}
sort_names(names, n); // 调用排序函数
printf("排序后的名字:\n");
for (int i = 0; i < n; i++)
{
printf("%s\n", names[i]); // 逐个输出排序后的名字
free(names[i]); // 释放内存
}
return 0;
}
void sort_names(char* names[], int n)
{
// 冒泡排序
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (strcmp(names[j], names[j + 1]) > 0)
{
char* tmp = names[j];
names[j] = names[j + 1];
names[j + 1] = tmp;
}
}
}
}
```
在这段代码中,我们使用了指针数组来存储输入的名字,并且使用了函数调用的方法来进行字符串比较和排序。在排序函数中,我们使用了冒泡排序算法,并且使用了strcmp函数来进行字符串比较。最后,我们逐个输出排序后的名字,并且释放每个名字所占用的内存。
阅读全文