#include #include #include #define INF ((float)(1e+300 * 1e+300)) std::vector> MidValue(double AB, double BC, double AC); bool IsPossible(double AB, double BC, double AC); int main() { setlocale(LC_ALL, "ru-RU"); double AB = 0, BC = 0, AC = 0; std::cout << "AB = "; std::cin >> AB; std::cout << "BC = "; std::cin >> BC; std::cout << "AC = "; std::cin >> AC; if (IsPossible(AB, BC, AC)) { auto vec = MidValue(AB, BC, AC); for (size_t i = 0; i < vec.size(); ++i) { if (vec[i].second != INF) { std::cout << vec[i].first << "M" << i + 1 << " = " << vec[i].second << std::endl; } else { std::cout << vec[i].first << "M" << i + 1 << " -- Несуществует!" << std::endl; } } } else { std::cout << "Треугольник с такими сторонами не существует!" << std::endl; } system("pause"); return 0; } bool IsPossible(double AB, double BC, double AC) { if ((AB + BC > AC) && (AB + AC > BC) && (AC + BC > AB)) { return true; } return false; } std::vector> MidValue(double AB, double BC, double AC) { std::vector> vec; vec.reserve(3); std::pair midAB; std::pair midBC; std::pair midAC; midAB.first = "A"; double ABM = round(2 * (pow(AC, 2))) + (2 * (pow(BC, 2))) - (2 * (pow(AB, 2))); if (ABM >= 0) { midAB.second = (0, 5) * sqrt(ABM); } else { midAB.second = INF; } midBC.first = "B"; double BCM = round(2 * (pow(AB, 2))) + (2 * (pow(AC, 2))) - (2 * (pow(BC, 2))); if (BCM >= 0) { midBC.second = (0, 5) * sqrt(BCM); } else { midBC.second = INF; } midAC.first = "C"; double ACM = round((2 * (pow(AB, 2))) + (2 * (pow(BC, 2))) - (2 * (pow(AC, 2)))); if (ACM >= 0) { midAC.second = (0, 5) * sqrt(ACM); } else { midAC.second = INF; } vec.push_back(midAB); vec.push_back(midBC); vec.push_back(midAC); return vec; }