У меня проблемы с выбором строк внутри структур. Все значения, которые я ввожу, не меняют положение после сортировки. Я думаю, что мне не хватает чего-то незначительного, но я не смог найти соответствующую помощь в Интернете. *p_customer_start
указывает на начало массива. p_outer
и p_inner
должны выполнять сортировку. Кто-нибудь знает, что происходит не так?
void sort_customers(int quantity, struct customer *p_customer_start)
{
struct customer *p_customer,
*p_outer,
*p_inner,
temp_customer;
printf("\nInside the sorting function.");
for(p_customer = p_customer_start; (p_customer-p_customer_start) < quantity; p_customer++)
{
p_inner = p_customer;
for(p_outer = p_customer + 1; p_outer <= quantity; p_outer++)
if(strcmp(p_outer->customer_name, p_inner->customer_name) > 0)
p_inner = p_outer;
temp_customer = *p_customer;
*p_customer = *p_inner;
*p_inner = temp_customer;
p_inner++;
}
return;
}