Я использую сортировку выбора для сортировки списка имен из команды по крикету.
Сортировка работает после первого повторения имени 3 раза, что исключает два других имени из массива, который я сортирую.
Входные данные из массива (по порядку):
Кларк Уотсон Пиво Коупленд Хаддин Харрис Хьюз Хасси Джонсон Хавая Лион Марш Паттинсон Понтинг Сайддл Уорнер
Вывод после сортировки массива:
Пиво Пиво Пиво Коупленд Хаддин Харрис Хьюз Хасси Джонсон Хаваджа Лион Марш Паттинсон Понтинг
Код:
void sort_names (Team_t player[]) {
int pos;
int min;
int i, str_check;
char *temp = NULL;
for (pos = 0; pos < MAX_PLYR; pos++) {
min = pos;
for (i = (pos + 1); i < MAX_PLYR; i++) {
str_check = strcmp(player[i].pname, player[min].pname);
if (str_check < 0) {
min = i;
}
}
if (min != pos) {
temp = player[pos].pname;
strcpy(player[pos].pname, player[min].pname);
strcpy(player[min].pname, temp);
}
}
}