Untitled

mail@pastecode.io avatar
unknown
c_cpp
a year ago
3.2 kB
1
Indexable
Never
#include <iostream> //підключення бібліотеки введення-виведення
#include <algorithm> //підключення бібліотеки алгоритмів
#include <string> //підключення бібліотеки рядків
#include <iomanip> //підключення бібліотеки для встановлення формату виведення

using namespace std; //використання простору імен std

struct Company //створення структури Company
{
    string name; //назва компанії
    int month; //місяць
    double profit; //прибуток
};
bool compareProfit(const Company &c1, const Company &c2) //функція порівняння за прибутком
{
    return c1.profit < c2.profit; //повертає true, якщо прибуток першої компанії менше за прибуток другої
}

int main() //головна функція
{
    int n; //кількість компаній
    cout << "Enter the number of companies: "; //виведення запиту на введення кількості компаній
    cin >> n; //зчитування кількості компаній

    Company companies[n]; //створення масиву компаній

    for (int i = 0; i < n; i++) //цикл введення даних про компанії
    {
        cout << "Enter the name of company " << i+1 << ": "; //виведення запиту на введення назви компанії
        cin.ignore(); //ігнорування переносу рядка після введення кількості компаній
        getline(cin, companies[i].name); //зчитування назви компанії
        cout << "Enter the month of company " << i+1 << ": "; //виведення запиту на введення місяця
        cin >> companies[i].month; //зчитування місяця
        cout << "Enter the profit of company " << i+1 << ": "; //виведення запиту на введення прибутку
        cin >> companies[i].profit; //зчитування прибутку

    }
    sort(companies, companies + n, compareProfit); //сортування компаній за прибутком

    cout << "Sorted list of companies:" << endl; //виведення заголовку відсортованого списку компаній
    cout << left << setw(30) << "Name" << setw(10) << "Month" << setw(10) << "Profit" << endl; //виведення заголовків стовпців таблиці
    for (int i = 0; i < n; i++) //цикл виведення відсортованого списку компаній
    {
        cout << left << setw(30) << companies[i].name << setw(10) << companies[i].month << setw(10) << fixed << setprecision(2) << companies[i].profit << endl; //виведення назви компанії, місяця і прибутку у відповідні стовпці таблиці
    }

    return 0; //повернення нульового значення
}