Вывести список всех товаров за алфавитом на Си

#include <stdio.h>
#include <stdlib.h>

int main()
{
int i;
typedef struct{
    int code; //код товару
    char name[15]; //назва товару
    int UAH; //Ціна товару
    int k; //кількість товару
  } Storage;
  Storage temp;
  Storage storage[6] = {{6745, "Headphone", 400, 30},
                {9399, "Tablet", 16300, 44},
                {9476, "Laptop", 18600, 20},
                {4584, "Computer mouse", 600, 39},
                {9455, "Phone case", 200, 16},
                {2683, "Phone", 18800, 17}};
  printf("Code        Product name         Price  Amouny\n");
  for(i=0; i<6; i++){
    printf("%4d\t %15s\t %5d\t %2d\n", storage[i].code, storage[i].name, storage[i].UAH, storage[i].k);
  }
  printf("\n");

    return 0;
}

Ответы (1 шт):

Автор решения: Harry

Товары надо отсортировать. Проще всего сделать это, написав компаратор

int compare(const void * a_, const void * b_)
{
    Storage * a = (Storage *)a_;
    Storage * b = (Storage *)b_;
    return strcmp(a->name,b->name);
}

и применив функцию qsort

qsort(storage,6,sizeof(Storage),compare);

Полный код тут.

→ Ссылка