图书馆新进一批图书,每本图书的名字均不超过50个字符。编写一程序,将这些图书的名字按照从小到大的顺序排列。要求 排序通过函数进行,数据的输入输出及函数调用在主函数中进行
时间: 2024-03-08 07:47:55 浏览: 90
好的,根据您的要求,我可以为您提供一个基于C语言的程序示例,实现对图书名称的排序功能。代码如下:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100 // 最大图书数量
#define MAX_NAME_LEN 50 // 最大图书名字长度
// 交换两个字符串
void swap(char *str1, char *str2) {
char temp[MAX_NAME_LEN + 1];
strcpy(temp, str1);
strcpy(str1, str2);
strcpy(str2, temp);
}
// 冒泡排序函数,按照字典序从小到大排序
void bubble_sort(char book_names[MAX_NUM][MAX_NAME_LEN + 1], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(book_names[j], book_names[j + 1]) > 0) {
swap(book_names[j], book_names[j + 1]);
}
}
}
}
int main() {
int n;
char book_names[MAX_NUM][MAX_NAME_LEN + 1];
// 输入图书数量和名称
printf("请输入图书数量:");
scanf("%d", &n);
printf("请输入每一本图书的名称:\n");
for (int i = 0; i < n; i++) {
scanf("%s", book_names[i]);
}
// 对图书名称进行排序
bubble_sort(book_names, n);
// 输出排序后的图书名称
printf("排序后的图书名称为:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", book_names[i]);
}
return 0;
}
```
代码中使用了冒泡排序算法,按照字典序从小到大排序。您可以根据需要修改排序算法。在主函数中,首先输入图书数量和名称,然后调用排序函数进行排序,最后输出排序后的图书名称。
阅读全文