Мне нужно сделать календар (как список дел), и мне нужно отсортировать месяцы в нем.сортировка месяца с использованием структур в C
у меня есть:-структура
typedef struct
{
char name[3];
int month_num;
int day_num;
int day_size; // amount of days that are field in with tasks.
char task[40];
}month; // each month contains a name, its num in the calendar and days.
для того, чтобы отсортировать месяцев, так что это будет проще, я решил сортирую их тиром чисел. я имею в виду, что я называю Jan номером 1, Feb как число 2 и т. д., но поскольку у меня есть структура, которую я потерял в пути со всеми именами и всеми элементами.
я сведущий дать всем месяцам тира номер: (это немного долго, так что я буду показывать несколько первый)
if (strcmp(mName, "jan") == 0)
{
mon[monthcounter].month_num = 1;
}
else if (strcmp(mName, "feb") == 0)
{
mon[monthcounter].month_num = 2;
}
else if (strcmp(mName, "mar") == 0)
{
mon[monthcounter].month_num = 3;
}
else if (strcmp(mName, "apr") == 0)
{
mon[monthcounter].month_num = 4;
}
else
{
printf("Invalid month\n");
}
//etc.
и теперь, чтобы сделать сортировку это сам я потерял в путь. (я знаю, как сделать регулярную функцию свопинга, которая получает 2 интгера или массив, но я полагаю, что здесь это не то же самое ...)
Я действительно буду благодарен за помощь!
Рассмотрите возможность написания хеш-таблицы. Это хорошая учебная задача, и она легко справится с этой задачей. –
В чем именно ваш вопрос lili? – gsamaras
Использование 'qsort()' вы только для того, чтобы написать функцию сравнения (а не функцию свопинга) – pmg