Итак, у меня есть эта функция, которая в настоящее время сортирует массив масс, который я подключаю к нему, и сортирует его в алфавитном порядке, как показано:
void string_rearrangement(Employee payroll[], int size)
{
//declaring temporary struct
Employee temp;
int i = 0, j = 0;
for (i = 0; i <= size; i++)
{
for (j = i + 1; j <= size; j++)
{
if (strcmp(payroll[i].name, payroll[j].name) >0)
{
temp = payroll[i];
payroll[i] = payroll[j];
payroll[j] = temp;
}
}
}
}
Это работает. Я проверял это. Вот снимок экрана с выводом, который я получаю, когда печатаю имена: https://i.imgur.com/YhUzUa0.png
Но теперь я хотел изменить это так, чтобы это дало мне обратный алфавитный порядок. Я думал, что это просто изменит условие strcmp на <0, как показано: </p>
if (strcmp(payroll[i].name, payroll[j].name) <0)
Но когда я это делаю, я получаю какой-то сумасшедший вывод, подобный этому: https://i.imgur.com/JdI0v8b.png
Единственное, что я изменил в коде, это> 0, поэтому я не уверен, почему это происходит.