用c语言【问题描述】输入整数n及n个字符串,试将这些字符串按照长度的升序排列并显示出来,试完成空缺处的代码 【输入形式】输入整数n及n个字符串 【输出形式】将字符串按照长度升序排列输出。
时间: 2024-03-18 22:40:26 浏览: 85
下面是实现题目要求的 C 代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100 // 最大字符串数量
#define MAX_LEN 1000 // 最大字符串长度
int main() {
int n;
char str[MAX_N][MAX_LEN];
int len[MAX_N];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", str[i]);
len[i] = strlen(str[i]);
}
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (len[j] > len[j+1]) {
int tmp_len = len[j];
len[j] = len[j+1];
len[j+1] = tmp_len;
char tmp_str[MAX_LEN];
strcpy(tmp_str, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], tmp_str);
}
}
}
// 输出排序结果
for (int i = 0; i < n; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
解释如下:
1. 定义常量 `MAX_N` 和 `MAX_LEN`,分别表示最大字符串数量和最大字符串长度。
2. 定义字符串数组 `str` 和整型数组 `len`,分别用于存储输入的字符串和对应的字符串长度。
3. 读入整数 `n`,然后循环读入 `n` 个字符串,并计算每个字符串的长度。
4. 使用冒泡排序算法将字符串按照长度升序排列。
5. 循环输出排序后的字符串数组 `str`。
阅读全文