Сортировка структуры по одному из полей методом пузырька - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем привет! Прошу помочь мне в написании сортировки по опр. полю,например, по марке. Вот структура:
Листинг программы
  1. struct car{
  2. unsigned nr;
  3. char marka[100];
  4. char model[100];
  5. char cvet[100];
  6. char strana[100];
  7. unsigned cena;
  8. }car1, car2;
Файл car.dat Пользуюсь visual studio 2013 ЗАРАНЕЕ СПАСИБО

Решение задачи: «Сортировка структуры по одному из полей методом пузырька»

textual
Листинг программы
  1. // Вход - массив структур
  2. // struct car array[...] = {...};
  3. void bubble_sort(struct car * array, const unsigned int size)
  4. {
  5.     unsigned int i, j;
  6.     struct car tmp;
  7.  
  8.     for (i = 0; i < size; i++) {
  9.         for (j = size - 1; j > i; j--) {
  10.             if (strncmp(array[j].brand, array[j-1].brand, 100) < 0 ) { // Длина взята из приведенной вами структуры
  11.                 tmp = array[j];
  12.                 array[j] = array[j-1];
  13.                 array[j-1] = tmp;
  14.             }
  15.         }
  16.     }
  17. }

Объяснение кода листинга программы

  1. Входные данные: массив структур array и размер массива size.
  2. Создаются две переменные i и j для использования в циклах.
  3. Создается временная структура tmp типа struct car.
  4. Запускается внешний цикл от 0 до size для прохода по всем элементам массива.
  5. Внутренний цикл начинается с j = size - 1 и уменьшается на 1 с каждой итерацией, пока не станет меньше i.
  6. Проверяется, меньше ли поле brand текущего элемента по сравнению с предыдущим. Если меньше, то выполняется:
    • Создается временная переменная tmp, которая содержит текущий элемент.
    • Текущий элемент заменяется значением предыдущего элемента.
    • Предыдущий элемент заменяется временной переменной tmp.
  7. Внутренний цикл завершается, когда j становится больше или равно i.
  8. После завершения внутреннего цикла, внешний цикл повторяется, пока все элементы не будут отсортированы.
  9. Возвращается ничего не возвращающая функция.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы