C语言中输入一组字符串,输出的顺序按照输入数组的元素从多到少排序,相同的排序则按照ascii码排序,C语言代码的实现
时间: 2024-02-16 17:00:05 浏览: 74
将若干字符串按字母顺序由小到大输出。-谭浩强c语言教程文档
好的,这里是一段 C 语言的代码,可以实现输入一组字符串,按照输入数组的元素从多到少排序,相同的排序则按照 ASCII 码排序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char str[MAX_LEN][MAX_LEN], temp[MAX_LEN];
int count[MAX_LEN] = {0};
int i, j, k, n;
printf("请输入字符串的个数:");
scanf("%d", &n);
printf("请输入字符串:\n");
for (i = 0; i < n; i++) {
scanf("%s", str[i]);
count[i] = strlen(str[i]);
}
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (count[j] < count[j+1] || (count[j] == count[j+1] && strcmp(str[j], str[j+1]) < 0)) {
// 交换字符串
strcpy(temp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], temp);
// 交换计数器
k = count[j];
count[j] = count[j+1];
count[j+1] = k;
}
}
}
printf("按照字符串长度从多到少排序:\n");
for (i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
在这段代码中,我们首先定义了一个二维字符数组 `str`,用来存储输入的字符串;另外还定义了一个一维整型数组 `count`,用来存储每个字符串的长度。然后通过双重循环进行冒泡排序,排序的依据是字符串的长度,如果长度相同,则按照 ASCII 码排序。排序完成后,按照排序结果输出字符串即可。
阅读全文