#include
using namespace std;
bool exists(const double, const double, const double);
double perimetre(const double, const double, const double);
double area(const double, const double, const double);
double max_height(const double, const double, const double);
int main() {
system("chcp 1251 > nul");
cout << " Введите стороны треугольника: ";
double a, b, c;
cin >> a >> b >> c;
if (exists(a, b, c)) cout << " Наибольшая высота = " << max_height(a, b, c) << endl;
else cout << " Треугольник не существует! \n\a";
cin.get(); cin.get();
return 0;
}
double area(const double _a, const double _b, const double _c) {
double p = perimetre(_a, _b, _c) / 2;
return sqrt(p * (p - _a) * (p - _b) * (p - _c));
}
double max_height(const double _a, const double _b, const double _c) {
double ar2 = 2 * area(_a, _b, _c);
return max(max(ar2 / _a, ar2 / _b), ar2 / _c);
}
bool exists(const double _a, const double _b, const double _c) {
double maximum = max(max(_a, _b), _c);
if (perimetre(_a, _b, _c) - maximum <= maximum) return false;
return true;
}
double perimetre(const double _a, const double _b, const double _c) { return _a + _b + _c; }
уроки надо сразу делать, а ни в 22:30
#include
#include
using namespace std;
int main(){
float a,b,c,y; cout<<"a b c ? "; cin>>a>>b>>c; y=(a+b+c)/2;
y=2*sqrt(y*(y-a)*(y-b)*(y-c)); a=y/a; b=y/b; c=y/c;
y=a>b? (a>c?a:c): (b>c?b:c); cout<< y; cin.get(); cin.get();}