试题 历届真题 字串排序【第十一届】
时间: 2023-05-22 08:03:30 浏览: 83
这道题目属于编程类的问题,可以回答。以下是可能的解题思路:
题目描述:
输入多个字符串,按照字典序从小到大排序后输出。
输入:
第一行一个正整数 n(n≤10),表示字符串的个数。
接下来 n 行,每行一个字符串,字符串的长度均不超过 10(字符串中只包含大小写字母)。
输出:
按照字典序从小到大排序后的字符串。
样例输入:
3
apple
orange
banana
样例输出:
apple
banana
orange
解题思路:
首先读入 n,然后读入 n 个字符串,将它们存储到一个字符串数组中。使用 qsort 函数对字符串数组进行排序,排序的比较函数可以使用 strcmp 函数。
最后按照顺序输出排序后的字符串即可。
参考代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 10
#define MAX_LEN 11
char strings[MAX_N][MAX_LEN];
int cmp(const void *a, const void *b) {
return strcmp(*(char **)a, *(char **)b);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", strings[i]);
}
qsort(strings, n, sizeof(char[MAX_LEN]), cmp);
for (int i = 0; i < n; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
注意:该解法假定字符串只包含大小写字母,如果出现其它字符(如数字、符号),则可能需要相应修改。