我正在尝试使用 C 语言从命令行读取单词argv,然后根据它们的长度按降序对它们进行排序。然而,我的排序算法产生了意想不到的输出。
我使用的代码如下:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc - 1; i++) {
for (int j = 1; j < argc - i - 1; j++) {
if (strlen(argv[j]) < strlen(argv[j + 1])) {
char temp_word[20];
strcpy(temp_word, argv[j]);
strcpy(argv[j], argv[j + 1]);
strcpy(argv[j + 1], temp_word);
}
}
}
puts("\n");
for (int i = 1; i < argc; i++) {
printf("%s ", argv[i]);
}
return …Run Code Online (Sandbox Code Playgroud)