Отсортировать массив структур TTrain в алфавитном порядке их поля nazv - C (СИ)
Формулировка задачи:
Здравствуйте. Стоит задача отсортировать массив структур TTrain в алфавитном порядке их поля nazv
Сама структура выглядит так:
Функцию сортировки я написал самую простую — пузырьковую, однако на массив она никак не влияет. Укажите, пожалуйста, на ошибку. Функция сортировки:
struct TDate { short day, month; }; struct TTime { short minutes, hours; }; struct TTrain { char nazv[50]; unsigned short numr; struct TDate date; struct TTime time; };
void trainSort(struct TTrain *RASP, int N) { for (unsigned i = 0; i < N; i++) for (unsigned j = N - 2; j <= 0; j--) if (strcmp(RASP[j].nazv, RASP[j + 1].nazv) > 0) { struct TTrain t; t = RASP[j]; RASP[j] = RASP[j+1]; RASP[j+1] = t; } }
Решение задачи: «Отсортировать массив структур TTrain в алфавитном порядке их поля nazv»
textual
Листинг программы
for (unsigned j = N - 2; j <= 0; j--)
Объяснение кода листинга программы
В данном коде выполняется сортировка массива структур TTrain в алфавитном порядке их поля nazv. Список действий:
for (unsigned j = N — 2; j <= 0; j--)
- это цикл, который выполняется отN — 2
до0
с шагом-1
. Переменнаяj
последовательно принимает значенияN — 2
,N — 3
,N — 4
и так далее, пока не достигнет0
. ЗначениеN
здесь - это размер массива структур TTrain.- Внутри цикла происходит сравнение и обмен элементов массива. Но в данном коде эта часть отсутствует, поэтому нам сложно сказать, что именно происходит внутри цикла. Однако, предполагается, что здесь используется алгоритм сортировки, например, пузырьком или вставками.
- Цикл выполняется до тех пор, пока
j
не станет меньше или равным0
. Это означает, что цикл выполняется до тех пор, пока не будет выполнен полный проход по массиву отN — 2
до0
. В итоге, данный код, скорее всего, выполняет сортировку массива структур TTrain в алфавитном порядке их поля nazv.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д