Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.12.2019
Сообщений: 2

Сортировка структур

13.12.2019, 22:26. Показов 527. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно упорядочить список по среднему баллу аттестата. С помощью пузырькового метода сортирую по возрастанию средний бал, но фамилия и место жительство нет понятия как привязать к сортировке

#include <iostream>
#include <iomanip>
#include <cstring>
using namespace std;

int main ( ) {
setlocale( LC_ALL,"Russian" );
const int countMax=25;
typedef enum {home,dormitory,rented} Tplace;
struct Trat {
float grade;
};
struct Tstud {
char surname[16];
Tplace place;
Trat rating;
};
Tstud gruppa [countMax];
char *placestr[16] = {"дома" , "общежитие" , "жильё"};

int countStud, Num;
int numPlace;
int i;
cout << " Число студентов (до " << countMax+1 << "): ";
cin >> countStud;
if (countStud>countMax) countStud=countMax;
if (countStud<1) countStud=1;
float grade, rating;
for (Num=0; Num<countStud; Num++) {
cout << "\tСтудент №\n" << Num+1 << ". "
<< setw(28) << left << "Фамилия?";
cin >> gruppa[Num].surname;
cout << " Место жительства?: Дома-0, Общежитие-1, Съёмное жильё-2: ";
cin>>i; gruppa[Num].place=Tplace(i);
cout<<" Средний бал аттестата по всем предметам: ";
cin>>grade; gruppa[Num].rating.grade=grade;
}
cout << "\nСписок группы:\n" << setw(6) << "Номер"
<< setw(10) << "Фамилия"
<< setw(15) << "Место жительства " << "Средний бал аттестата" << endl;
for (Num=0; Num<countStud; Num++) {
cout<<right<<Num+1<<setw(13)<<gruppa[Num].surname
<<setw(15)<<placestr[gruppa[Num].place]
<<setw(15)<<gruppa[Num].rating.grade<<endl;
}
cout<<"Упорядочение по среднему баллу аттестата: "<<endl;
float temp;
for (int Num = 0; Num < countStud - 1; Num++) {
for (int j = 0; j < countStud - Num - 1; j++) {
if (gruppa[j].rating.grade > gruppa[j + 1].rating.grade) {
temp = gruppa[j].rating.grade;
gruppa[j].rating.grade = gruppa[j + 1].rating.grade;
gruppa[j + 1].rating.grade = temp;
}
}
}
cout << "\nСписок группы:\n" << setw(6) << "Номер"
<< setw(10) << "Фамилия"
<< setw(15) << "Место жительства " << "Средний бал аттестата" << endl;
for (Num=0; Num<countStud; Num++) {
cout<<right<<Num+1<<setw(13)<<gruppa[Num].surname
<<setw(15)<<placestr[gruppa[Num].place]
<<setw(15)<<gruppa[Num].rating.grade<<endl;
}
return 0;


}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2019, 22:26
Ответы с готовыми решениями:

Блочная сортировка структур (Отсортировать массив структур по фамилии)
Подскажите алгоритм блочной сортировки структур на языке С++. Мне нужно отсортировать массив структур по фамилии.

Сортировка структур
Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи...

Сортировка структур
struct Man{ char name; Название книги char avtor; Автор int day; год издания float kol; ...

3
 Аватар для zayats80888
6343 / 3514 / 1427
Регистрация: 07.02.2019
Сообщений: 8,979
13.12.2019, 22:33
Цитата Сообщение от danil_crytit Посмотреть сообщение
но фамилия и место жительство нет понятия как привязать к сортировке
строки сравниваются с помощью strcmp, а enum так же, как и целочисленные типы
0
0 / 0 / 0
Регистрация: 13.12.2019
Сообщений: 2
13.12.2019, 22:50  [ТС]
Мне не нужно больше ничего сравнивать, значения среднего балла аттестата я отсортировал, но вот зачения фамилии и место жительства остались на своих местах. Как сделать так, чтобы в ответе на против строчки с оценкой стояли значения, которые я вводил вместе с этой оценкой
0
 Аватар для zayats80888
6343 / 3514 / 1427
Регистрация: 07.02.2019
Сообщений: 8,979
13.12.2019, 23:03
danil_crytit, ах вот оно что
C++ Скопировано
1
2
3
temp = gruppa[j];
gruppa[j] = gruppa[j + 1];
gruppa[j + 1] = temp;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2019, 23:03
Помогаю со студенческими работами здесь

Сортировка структур
Помогите составить программу, пожалуйста! Дана структура &quot;поезд&quot; с полями: Наименование маршрута Время отправления Время...

Сортировка структур
Я сделал структуру из 10 окружностей. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;ctime&gt; using namespace std; struct...

Сортировка структур
Подскажите с сортировкой. В функции SortSwap отсортировал по среднему значения. Но в самой структуре позиции не меняются. Спасибо. ...

Сортировка Структур
Как организовать обмен по типу данных char? Какие есть способы сортировки в таких случаях? #include &lt;stdio.h&gt; #include...

Сортировка структур
Задание такое: Разработайте программу для обработки структурных типов данных. Реализуйте отдельные функции для ввода, вывода, поиска...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
Состояние гонки в C#: подводные камни многопоточного программировани­я
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер