输入10个等长的字符串,进行从小到大排序,然后输出排序后的10个字符串
时间: 2023-05-12 09:07:06 浏览: 65
可以使用快速排序算法来实现字符串的排序。以下是一个示例代码:
```python
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
strings = []
for i in range(10):
s = input("请输入第{}个字符串:".format(i+1))
strings.append(s)
sorted_strings = quick_sort(strings)
print("排序后的字符串:")
for s in sorted_strings:
print(s)
```
输入10个字符串后,程序会对这些字符串进行排序,并输出排序后的结果。
相关问题
用C语言输入10个等长的字符串,进行从小到大排序,然后输出排序后的10个字符串
可以使用冒泡排序或快速排序等算法来实现字符串的排序。以下是使用冒泡排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void bubble_sort(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);
}
}
}
}
int main() {
char arr[10][MAX_LEN];
int i;
printf("请输入10个等长的字符串:\n");
for (i = 0; i < 10; i++) {
scanf("%s", arr[i]);
}
bubble_sort(arr, 10);
printf("排序后的字符串为:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", arr[i]);
}
return 0;
}
```
这段代码可以实现输入10个等长的字符串,进行从小到大排序,然后输出排序后的10个字符串。
注意:这里的字符串长度被限定为100,如果需要处理更长的字符串,需要修改MAX_LEN的值。
输入10个等长的字符串,进行从小到大排序,然后输出排序后的10个字符串,使用指针来实现
可以使用以下代码来实现:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char *strings[], int n);
int main() {
char *strings[10];
int i;
printf("请输入10个等长的字符串:\n");
for (i = 0; i < 10; i++) {
strings[i] = (char *) malloc(MAX_LEN * sizeof(char));
scanf("%s", strings[i]);
}
sort_strings(strings, 10);
printf("排序后的字符串为:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
void sort_strings(char *strings[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
注意,这里使用了动态内存分配来存储字符串,需要在程序结束时释放内存,否则会造成内存泄漏。