Informatică, întrebare adresată de Anaru, 9 ani în urmă

#include
#include

using namespace std;

int main()
{
float B,b,l,d,h,x,y;
cin>>B>>b>>l;
x=(B-b)/2;
h=sqrt(l*l+x*x);
y=b+x;
d=sqrt(h*h+y*y);
cout<
return 0;
}


Cerința
Cunoscând laturile unui trapez isoscel, să se calculeze lungimea diagonalei.

Date de intrare
Programul citește de la tastatură numerele reale B, b și l, separate prin spații, reprezentând baza mare, baza mică și lungimea laturilor oblice.

Date de ieșire
Programul va afișa pe ecran numărul d, reprezentând diagonala trapezului.

Restricții și precizări
0 < B, b, l, d < 1000
rezultatul va fi punctat dacă diferența dintre cel afișat de program și cel corect este mai mică decât 0.01.

Exemplu
Intrare

6 2 5
Ieșire

6.08276
Explicație
Valoarea bazei mari este 6, baza mică este 2, laturile oblice au valoarea 5. Diagonala trapezului este 6.08276

Unde am gresit? Mie imi da 6.7082 :/

Răspunsuri la întrebare

Răspuns de davidalexandru9
19
#include <iostream>
#include <cmath>
using namespace std;
int main()
 {
    float B, b, l, c, h, d, f;
    cin>>B>>b>>l;
    c=(B-b)/2;
    h=sqrt((l*l)-(c*c));
     f=b+c;
    d=sqrt(h*h+f*f);
     cout<<d;
return 0;
}

Anaru: Multumesc! 
davidalexandru9: mersi mult
Alte întrebări interesante