|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.04.2022, 13:33 | #1 |
Новичок
Джуниор
Регистрация: 05.04.2022
Сообщений: 2
|
Сортировка по алфавиту С++
Здравствуйте! Помогите, пожалуйста. Задание:
1. Создать структуру Worker, которая содержит: ФИО, должность, год поступления на работу 2. Отсортировать список фамилий по алфавитному порядку и вывести на экран 3. Отсортировать людей по стажу, который вводится с клавиатуры Нужна помощь - программа не сортирует по фамилиям #include <iostream> #include <cstring> #include <conio.h> #include <Windows.h> #include <cstdlib> #include <string.h> using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); // Локализация Русского, без него некорректно отображаются фамилии int net, Num, i, r, j; struct Worker { char WK[40]; // Фамилия и инициалы сотрудника char HR[40]; // Должность int mark; // Год поступления на работу }; cout << "Введите количество сотрудников: " << endl; cin >> Num; //количество сотрудников Worker* box = new Worker[Num]; //выделение в памяти места под массив Worker tmp; for (int i = 0; i < Num; i++) //Заполнение данных { cout << "Введите Фамилию и Инициалы сотрудника в формате Фамилия.И.О: " << endl; cin >> box[i].WK; cout << "Введите cпециальность: " << endl; cin >> box[i].HR; cout << "Введите год поступления на работу: " << endl; cin >> box[i].mark; } for (i = 0; i < Num -1 ; i++); //должна быть сортировка по алфавиту //хз,не пашет { for (int j = 0 ; j < Num; j++) { if (strcmp(box[i].WK, box[j].WK) > 0) { strcpy_s(tmp.WK, box[i].WK); strcpy_s(box[i].WK, box[j].WK); strcpy_s(box[j].WK, tmp.WK); } } } //вывод на экран студентов - работает cout<<endl; cout << "Сортировка по алфавиту: " << endl; for (int i = 0; i < Num; i++) { cout << "Фамилия и инициалы: " << box[i].WK << endl; //cout << "Специальность: " << box[i].HR << endl; //cout << "Год поступления на работу: " << box[i].mark << endl; } cout << endl; // работает то, что ниже cout << "Введите стаж для сортировки: " << endl; cin >> r; cout << "Сотрудники, чей стаж больше введённого: " << endl; net = 0; for (i = 0; i < Num; i++) { if ((2022 - box[i].mark) >= r) { cout << "Фамилия и инициалы: " << box[i].WK << endl; cout << "Специальность: " << box[i].HR << endl; } else net++; } if (net == Num) cout << "Таких сотрудников нет!" << endl; return 0; } |
05.04.2022, 13:48 | #2 |
Новичок
Джуниор
Регистрация: 05.04.2022
Сообщений: 2
|
Всем спасибо! Разобрался с сортировкой:
for (i = 0; i < Num; i++) //сортировка по алфавиту { for (int j = i; j < Num; j++) { if (box[j].WK , box[j + 1].WK > 0) { tmp = box[j]; box[j] = box[j + 1]; box[j + 1] = tmp; } } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка по алфавиту | РОман321 | Общие вопросы C/C++ | 1 | 24.08.2019 18:18 |
Сортировка по алфавиту | Krolik_Baksi | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.12.2014 01:22 |
сортировка по алфавиту на си++ | Craz | Помощь студентам | 2 | 01.10.2009 23:33 |
Сортировка по алфавиту | ЧИЖ | Общие вопросы Delphi | 1 | 16.03.2007 14:17 |