Вот мой код на данный момент:
#include <stdio.h>
#include <string.h>
#define WORD_LEN 20
int main(int argc, char *argv[]) {
int i;
char smallest_word[WORD_LEN + 1],
largest_word[WORD_LEN + 1],
current_word[WORD_LEN + 1];
current_word == argv[1];
strcpy(smallest_word, (strcpy(largest_word, current_word)));
for (i=2; i<argc; i++) {
current_word == argv[i];
if (strcmp(current_word, smallest_word) < 0) {
strcpy(smallest_word, current_word);
}
else if (strcmp(current_word, largest_word) > 0) {
strcpy(largest_word, current_word);
}
}
printf("\nSmallest word: %s", smallest_word);
printf("\nLargest word: %s", largest_word);
return 0;
}
Цель этой программы - взять аргументы (слова) из командной строки и сравнить их, чтобы увидеть, какой из них наименьший по сравнению с самым большим (АКА). Алфавитный порядок). Я чувствую, что у меня не работает программа, и она должна работать, но когда я пытаюсь запустить код, вместо этого выводятся странные волнистые символы. Если бы мой ввод был следующим, то вывод был бы:
Вход:
./whatever.exe hello there general kenobi
Выход:
Smallest word: ▒
Largest word: ▒
В то время как правильный вход и выход должен быть как следует:
Входные данные:
./whatever.exe hello there general kenobi
Выходные данные:
Smallest word: general
Largest word: there
Я не уверен, является ли это проблемой типа или у меня что-то не так с моим программа целиком С нетерпением жду любых отзывов