Сделать в visual studio c++ винни пух, пятачок и кролик решили полакомиться фруктами и пошли в магазин. выяснилось , что 1 кг мандаринов стоит x руб., 1 кг апельсинов – y руб., 1 кг киви – z руб. винни пух съел за месяц 30 кг мандаринов, 25 кг апельсинов и 5 кг киви, пятачок - 2 кг мандаринов, 3 кг апельсинов, 4 кг - киви, кролик -40 кг мандаринов, 5 кг апельсинов, 2 кг киви . определить: 1) сколько заплатил каждый за фрукты? 2) сколько всего руб. были оплачены за мандарины, апельсины, киви? 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;
}