Отсортировать массив структур 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д