输入n个字符串,然后用选择法按从小到大的顺序对它们进行排序,并输出排序后的结果。要求:用3个函数分别完成字符串的输入,排序和输出
时间: 2024-03-18 17:41:12 浏览: 55
现在有一个字符串“90,56,45,38,79,85”,按照从小到大排序——字符串排序
好的,我可以帮你解决这个问题。以下是一个基于C语言的程序示例,使用了三个函数来完成字符串的输入、排序和输出。
```c
#include <stdio.h>
#include <string.h>
// 输入n个字符串
void input_strings(char strings[][100], int n) {
printf("请输入%d个字符串:\n", n);
for (int i = 0; i < n; i++) {
scanf("%s", strings[i]);
}
}
// 选择排序算法
void selection_sort(char strings[][100], int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (strcmp(strings[j], strings[min_index]) < 0) {
min_index = j;
}
}
if (min_index != i) {
char temp[100];
strcpy(temp, strings[i]);
strcpy(strings[i], strings[min_index]);
strcpy(strings[min_index], temp);
}
}
}
// 输出排序后的结果
void output_strings(char strings[][100], int n) {
printf("排序后的结果:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", strings[i]);
}
}
int main() {
int n;
printf("请输入字符串的个数:\n");
scanf("%d", &n);
char strings[n][100];
input_strings(strings, n);
selection_sort(strings, n);
output_strings(strings, n);
return 0;
}
```
注意,这里使用了一个二维字符数组 `strings` 来存储输入的字符串,每个字符串最大长度为100。选择排序算法的实现是比较简单的,对于每个字符串,使用 `strcmp` 函数来比较其大小关系,然后交换位置即可。最后输出排序后的结果即可。
阅读全文