用c语言程序完成指针数组的应用:学院现有9系2部,建立一个char型指针数组指向这些单位名称,之后用冒泡排序法排序,并输出排序后的单位名称
时间: 2024-03-27 18:36:45 浏览: 76
指针数组与指针的指针-c语言指针数组与指针的指针
好的,这是一个简单的 C 语言程序,实现了指针数组的应用和冒泡排序法,来对学院9系2部的单位名称进行排序:
```c
#include <stdio.h>
#include <string.h>
#define NUM 11 // 单位名称的数量
int main() {
char *names[NUM] = {"9系1部", "9系2部", "9系3部", "9系4部", "9系5部", "9系6部", "9系7部", "9系8部", "9系9部", "2系1部", "2系2部"};
// 冒泡排序
for (int i = 0; i < NUM - 1; i++) {
for (int j = 0; j < NUM - i - 1; j++) {
if (strcmp(names[j], names[j+1]) > 0) {
// 交换两个指针指向的字符串
char *tmp = names[j];
names[j] = names[j+1];
names[j+1] = tmp;
}
}
}
// 输出排序后的单位名称
for (int i = 0; i < NUM; i++) {
printf("%s\n", names[i]);
}
return 0;
}
```
解释一下这段代码:
首先,定义了一个长度为 `NUM` 的 `char` 型指针数组 `names`,存储了学院9系2部的单位名称。
然后,使用冒泡排序法对 `names` 数组中的字符串进行排序,排序的依据是使用 `strcmp` 函数比较两个字符串的大小,如果前一个字符串的字典序比后一个字符串大,则交换两个字符串的指针。
最后,使用 `for` 循环遍历 `names` 数组,输出排序后的单位名称。
如果你有任何疑问,欢迎随时询问!
阅读全文