C语言从键盘输入十个字符串,由大到小输出
时间: 2024-12-26 10:29:05 浏览: 0
在C语言中,我们可以使用数组存储这十个字符串,并结合字符数组比较来进行排序。这里是一种简单的实现方法:
首先,我们需要创建一个动态数组,用于存储字符串。然后通过`fgets()`函数获取用户输入,接着在主循环中比较并交换需要的字符串,直到所有字符串按照字母顺序排列。最后,我们遍历数组并打印出来。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STRINGS 10
// 比较两个字符串并交换它们的位置
void compareAndSwap(char** arr, int i, int j) {
if (strcmp(arr[i], arr[j]) > 0) {
char temp[100];
strcpy(temp, arr[i]);
strcpy(arr[i], arr[j]);
strcpy(arr[j], temp);
}
}
int main() {
char* strings[MAX_STRINGS];
for (int i = 0; i < MAX_STRINGS; i++) {
char input[100];
printf("请输入第%d个字符串: ", i + 1);
fgets(input, sizeof(input), stdin); // 不包括换行符
strings[i] = input;
// 去除末尾的换行符
strings[i][strlen(strings[i])-1] = '\0';
}
// 冒泡排序算法进行降序排序
for (int i = 0; i < MAX_STRINGS - 1; i++) {
for (int j = 0; j < MAX_STRINGS - i - 1; j++) {
compareAndSwap(strings, j, j+1);
}
}
printf("按降序排列后的字符串:\n");
for (int i = 0; i < MAX_STRINGS; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
阅读全文