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

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

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

Имеется следующая информация о каждом из n студентов: ФИО,пол,возраст,курс. Написать программу, которая вводит эту информацию и вывести информацию,отсортированную по полям: курс,ФИО.
Листинг программы
  1. #include <stdio.h>
  2. struct student
  3. {char surname[20];
  4. char name[10];
  5. char fathername[10];
  6. char pol[1];
  7. int vozrast;
  8. int course;};
  9. int main()
  10. {struct student A[5];//массив студентов
  11. int i;
  12. printf("Введите информацию о студентах\n");
  13. printf("Фамилия имя отчество пол возраст курс\n");
  14. for (i=0;i<5;i++)
  15. {scanf(%s%s%s%s%d%d",&A[i].surname,&A[i].name,&A[i].fathername,&A[i].pol,&A[i].vozrast,&A[i].course);
Что нужно добавить, чтобы выводилась информация, отсортированная по полям?

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

textual
Листинг программы
  1. for(int i = 0; i < sizeof(A); i ++)
  2.        {
  3.               for(int c = 0; c < sizeof(A); c++)
  4.              {
  5.                    if(A[i].course < A[ c ].course)
  6.                    {
  7.                          student st = A[i];
  8.                          A[i] = A[ c ];
  9.                          A[ c ] = st;
  10.                    }
  11.              }
  12.        }

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

  1. Переменная A объявлена как массив структур.
  2. Два вложенных цикла for используются для сравнения и перестановки элементов массива структур.
  3. Внешний цикл for итерируется по каждому элементу массива A.
  4. Внутренний цикл for итерируется по каждому элементу массива A, начиная с текущего индекса, который больше текущего индекса внешнего цикла.
  5. Если поле course текущего элемента меньше, чем поле course внутреннего элемента, то выполняется следующая последовательность действий:
  6. Создается объект типа student со значением текущего элемента массива A.
  7. Значение текущего элемента массива A заменяется значением внутреннего элемента массива A.
  8. Значение внутреннего элемента массива A заменяется значением созданного объекта типа student.
  9. По завершении внутренних циклов, отсортированный массив структур сохраняется в переменной A.

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


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

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

8   голосов , оценка 4 из 5

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

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

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