本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
时间: 2023-05-25 15:05:39 浏览: 101
输出输入文本的每个单词长度
5星 · 资源好评率100%
#include <stdio.h>
#include <string.h>
#define MAX_N 100 // 假设最多输入100个单词,可根据实际情况修改
int main()
{
char words[MAX_N][101]; // 存储单词的二维字符数组
int len[MAX_N]; // 存储单词长度的数组
int n; // 单词的个数
int i, j, k; // 循环计数器
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%s", words[i]);
len[i] = strlen(words[i]); // 计算单词长度
}
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (len[j] > len[j + 1] || (len[j] == len[j + 1] && j > j + 1)) {
// 比较长度并交换单词的位置
int temp = len[j];
len[j] = len[j + 1];
len[j + 1] = temp;
char tmp[101];
strcpy(tmp, words[j]);
strcpy(words[j], words[j + 1]);
strcpy(words[j + 1], tmp);
}
}
}
// 输出排序后的单词
for (i = 0; i < n; i++) {
printf("%s\n", words[i]);
}
return 0;
}
阅读全文