typedef struct Workers
{
char id[10];
char *fName;
char *lName;
int yob;
int monthlyHours;
int salary;
}workers;
, поэтому у меня есть структура, которая заполнена рабочими данными.В главном меню пользователь вводит опцию: 1. Сортировать по идентификатору 2. Сортировать по имени 3. Сортировать по месячным часамлибо по строке, либо по целому числу.
Я написал функцию пузырьковой сортировки и функцию подкачки, но не имею ни малейшего понятия, как создать функцию принятия решения, которая может обрабатывать все типы сортировок
текущее состояние функции подкачки
int me_compare(workers *me1, workers *me2) {
int surnameResult;
surnameResult = strcmp(me1->fName, me2->fName);
return surnameResult;
}
текущее состояние функции сортировки
void sortStruct(workers newWorkers[N], int numOfSort)
{
workers tmp;
workers tmp2;
int i = 0;
int j = 0;
int result;
int swapped;
for ( i = 0;( i < N-1); i++)
{
swapped = 0;
for (j = 0; j < N-i - 1; j++)
{
tmp = newWorkers[j];
tmp2 = newWorkers[j + 1];
result = me_compare(&tmp, &tmp2);
if (result == 1)
{
newWorkers[j] = tmp2;
newWorkers[j + 1] = tmp;
swapped = 1;
}
}
if (swapped == 0)
break;
}
}
какие-либо советы для меня, как справиться с этим?