c语言完成:连续读入N个(不超过100)字符串(长度不超过100),当读入空行时停止输入; 对所读取的字符串排序,将它们按从大到小的顺序排列后输出。(不包括空字符串)。 输入: N个单词(空行表示结束) 输出: 排序后的顺序
时间: 2023-02-09 14:25:44 浏览: 154
C语言处理txt文本
C语言代码如下:
#include <stdio.h>
#include <string.h>
#define MAX_WORDS 100
#define MAX_WORD_LEN 100
int main(void) {
char words[MAX_WORDS][MAX_WORD_LEN]; // 存储读入的字符串
int word_count = 0; // 字符串的数量
char word[MAX_WORD_LEN]; // 用于读入单个字符串
// 使用循环读入字符串
while (1) {
// 读入字符串
if (scanf("%s", word) != 1) {
break;
}
// 如果是空字符串,则跳过
if (strlen(word) == 0) {
continue;
}
// 将读入的字符串存储到 words 数组中
strcpy(words[word_count], word);
word_count++;
}
// 定义比较函数,用于 qsort 排序
int compare(const void *a, const void *b) {
return strcmp(*(char **)b, *(char **)a);
}
// 使用 qsort 排序
qsort(words, word_count, sizeof(char *), compare);
// 输出排序后的字符串
for (int i = 0; i < word_count; i++) {
printf("%s\n", words[i]);
}
return 0;
}
阅读全文