(选做题)在主函数中输入10个不等长的字符串。用另一个函数对它们按升序排序, 然后在主函数中输出这10个已排序的字符串。
时间: 2024-05-05 07:21:56 浏览: 69
下面是一个示例程序,用于输入10个字符串并按升序排序后输出它们:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char arr[][MAX_LEN], int n);
int main() {
char strings[10][MAX_LEN];
int i;
printf("Enter 10 strings:\n");
for (i = 0; i < 10; i++) {
printf("String %d: ", i+1);
scanf("%s", strings[i]);
}
sort_strings(strings, 10);
printf("\nSorted strings:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
void sort_strings(char arr[][MAX_LEN], int n) {
int i, j;
char temp[MAX_LEN];
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (strcmp(arr[j], arr[j+1]) > 0) {
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j+1]);
strcpy(arr[j+1], temp);
}
}
}
}
```
在这个程序中,我们使用了一个包含10个字符串的二维字符数组 `strings`。我们首先在主函数中使用 `scanf` 输入这些字符串,然后调用 `sort_strings` 函数对它们进行排序。在 `sort_strings` 函数中,我们使用了冒泡排序算法对字符串进行排序。最后,在主函数中输出已排序的字符串。
阅读全文