Вот пример кода на языке C++, который соответствует вашему запросу:
#include <iostream>
#include <cstring> // Для работы со строками
#include <iomanip> // Для форматированного вывода
using namespace std;
// Определяем структуру person
struct Person {
char* name; // Указатель на имя
double salary; // Зарплата
};
// Функция для ввода данных о сотрудниках
void inputPersons(Person* persons, int count) {
for (int i = 0; i < count; ++i) {
cout << "Введите имя сотрудника " << i + 1 << ": ";
char tempName[100]; // Временный массив для ввода имени
cin >> ws; // Очистка потока ввода
cin.getline(tempName, 100);
persons
.name = new char[strlen(tempName) + 1]; // Выделяем память для имени
strcpy(persons.name, tempName); // Копируем имя
cout << "Введите зарплату сотрудника " << i + 1 << ": ";
cin >> persons.salary;
}
}
// Функция для вывода данных о сотрудниках
void displayPersons(Person* persons, int count) {
cout << setw(15) << "Имя" << setw(15) << "Зарплата" << endl;
cout << string(30, '-' << endl;
for (int i = 0; i < count; ++i) {
cout << setw(15) << persons.name << setw(15) << persons.salary << endl;
}
}
// Функция для сортировки сотрудников по зарплате
void sortPersonsBySalary(Person* persons, int count) {
for (int i = 0; i < count - 1; ++i) {
for (int j = 0; j < count - i - 1; ++j) {
if (persons[j].salary > persons[j + 1].salary) {
swap(persons[j], persons[j + 1]);
}
}
}
}
// Функция для освобождения памяти
void freeMemory(Person* persons, int count) {
for (int i = 0; i < count; ++i) {
delete[] persons.name; // Освобождаем память для имени
}
delete[] persons; // Освобождаем память для массива структур
}
int main() {
const int count = 5; // Количество сотрудников
Person* persons = new Person[count]; // Выделяем память для массива структур
// Ввод данных
cout << "Введите информацию о сотрудниках:\n";
inputPersons(persons, count);
// Вывод данных
cout << "\nИнформация о сотрудниках до сортировки:\n";
displayPersons(persons, count);
// Сортировка по зарплате
sortPersonsBySalary(persons, count);
// Вывод данных после сортировки
cout << "\nИнформация о сотрудниках после сортировки:\n";
displayPersons(persons, count);
// Освобождение памяти
freeMemory(persons, count);
return 0;
}