Cerința
Se dau lungimile laturilor unui triunghi ABC. Calculati lungimile inaltimilor duse din A, B, C.
Date de intrare
Programul citește de la tastatură numerele a, b, c reprezentand lungimile laturilor AB, BC, AC.
Date de ieșire
Programul va afișa pe ecran lungimile inaltimilor triunghiului cu 2 zecimale exacte daca acesta este valid, altfel se afiseaza mesajul Imposibil.
Restricții și precizări
1 ≤ a, b, c ≤ 1000
Exemplul 1:
Intrare
3 4 5
Ieșire
3.00 2.40 4.00
Exemplul 2:
Intrare
4 5 10
Ieșire
Imposibil
Salut! Va rog mult sa ma ajutati la acest exercitiu. Am incercat sa il fac dar la afisare nu afiseaza nimic.
andrei750238:
Calculezi aria cu Heron, calculezi inaltimile stiind ca Aria = b*h/2
Răspunsuri la întrebare
Răspuns de
2
Răspuns:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
double a, b, c;
cin >> a >> b >> c;
if ( a + b < c || a + c < b || a + b < c ) cout << "Imposibil";
else
{
double sp = ( a + b + c ) / 2;
double arie = sqrt ( sp * ( sp - a ) * ( sp - b ) * ( sp - c ));
double ha = arie * 2 / b;
double hb = arie * 2 / c;
double hc = arie * 2 / a;
ha = ( int ) ( ha * 100.000 ) / 100.000;
hb = ( int ) ( hb * 100.000 ) / 100.000;
hc = ( int ) ( hc * 100.000 ) / 100.000;
cout << std::fixed << std::setprecision(2) << ha << ' ' << hb << ' ' << hc;
}
return 0;
}
da 100 pe pbinfo
#include
#include
using namespace std;
int main()
{
int A,B,C;
double AB,BC,AC;
cin>>AB>>BC>>AC;
if((A > B + C) || (B > A + C) || (C > A + B))
cout<<"Imposibil";
else
{
double SP=(AB+BC+AC)/2;
int Aria=sqrt(SP*(SP-BC)*(SP-AC)*(SP-AB));
Aria=(AB*AC*sin(A))/2;
Aria=(AB*BC*sin(B))/2;
Aria=(AC*BC*sin(C))/2;
int aux;
aux=AB*100;
AB=(double)aux/100;
aux=AC*100;
AC=(double)aux/100;
aux=BC*100;
BC=(double)aux/100;
cout << fixed << setprecision(2) << A << " " << B << " " << C;
}
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Religie,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă