• Сделать в Visual Studio C++
    Винни Пух, Пятачок и Кролик решили полакомиться фруктами и пошли в магазин. Выяснилось , что 1 кг мандаринов стоит  x руб., 1 кг апельсинов – y руб., 1 кг киви – z руб. Винни Пух съел за месяц 30 кг мандаринов, 25 кг апельсинов и 5 кг киви, Пятачок - 2 кг мандаринов, 3 кг апельсинов, 4 кг - киви, Кролик -40 кг мандаринов, 5 кг апельсинов, 2 кг киви .
    Определить:
    1) Сколько заплатил каждый за фрукты?
    2) Сколько всего руб. были оплачены за мандарины, апельсины, киви?
    3) имя самого желающего к еде
    При решении использовать подпрограмму-функцию для определения расходов за продукты одним покупателем и подпрограмму-функцию для определения наибольшего из двух чисел.

Ответы 3

  • спасибо
  • Если вы кого-то благодарите, не затрудняйтесь нажимать на кнопку "Спасибо". Она ведь для этого и создана. На будущее.
  • В общем, как и было обусловлено:

    Используется функция для определения расходов,

    Используется функция определения наибольшего из двух чисел.

    Цена за килограмм вводится с клавиатуры.

    #include <iostream>

    #include <tuple>

    #include <clocale>

    #include <algorithm>

    #include <string>

    #include <array>

    void expenses(std::tuple<size_t, size_t, size_t, std::string> buy[], size_t price_mandarin, size_t price_apelsin, size_t price_kiwi)

    {

    std::cout << "Винни-пух заплатил " << std::get<0>(buy[0]) * price_mandarin + std::get<1>(buy[0]) * price_apelsin + std::get<2>(buy[0]) * price_kiwi << std::endl;

    std::cout << "Пятачок заплатил " << std::get<0>(buy[1]) * price_mandarin + std::get<1>(buy[1]) * price_apelsin + std::get<2>(buy[1]) * price_kiwi << std::endl;

    std::cout << "Кролик заплатил " << std::get<0>(buy[2]) * price_mandarin + std::get<1>(buy[2]) * price_apelsin + std::get<2>(buy[2]) * price_kiwi << std::endl;

    }

    void spent(std::tuple<size_t, size_t, size_t, std::string> buy[],  size_t price_mandarin, size_t price_apelsin, size_t price_kiwi)

    {

    std::cout << "За мандарины было оплачено " << (std::get<0>(buy[0]) + std::get<0>(buy[1]) + std::get<0>(buy[2])) * price_mandarin << std::endl;

    std::cout << "За апельсины было оплачено " << (std::get<1>(buy[0]) + std::get<1>(buy[1]) + std::get<1>(buy[2])) * price_apelsin << std::endl;

    std::cout << "За киви было оплачено " <<   (std::get<2>(buy[0]) + std::get<2>(buy[1]) + std::get<2>(buy[2])) *  price_kiwi << std::endl;

    }

    void voracious(std::tuple<size_t, size_t, size_t, std::string> buy[])

    {

    for (int i = 0; i < 3; i++)

     std::get<0>(buy[i]) = std::get<0>(buy[i]) + std::get<1>(buy[i]) + std::get<2>(buy[i]);

     

    }

    auto getmax(std::tuple<size_t, size_t, size_t, std::string> buy[])

    {

    return *(std::max_element(buy, buy + 3, [](const auto& var1, const auto& var2)

    {

     return std::tie(std::get<0>(var1)) < std::tie(std::get<0>(var2));

    }));

    }

    int main()

    {

    std::setlocale(LC_ALL, "Russian");

     

    size_t

     price_mandarin,

     price_apelsin,

     price_kiwi;

    std::cin >> price_mandarin >> price_apelsin >> price_kiwi;

    std::tuple < size_t, size_t, size_t, std::string> buy[3u]

    {

     {30, 25, 5, "Винни-пух"},

     {2, 3, 4, "Пятачок"},

     {40, 5, 2, "Кролик"}

    };

    expenses(buy, price_mandarin, price_apelsin, price_kiwi);

    spent(buy, price_mandarin, price_apelsin, price_kiwi);

    voracious(buy);

    std::cout << "Самый прожорливый: " << std::get<3>(getmax(buy)) << std::endl;

    std::system("PAUSE >> void");

    return 0;

    }

    answer img
    • Автор:

      marquise
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years