Informatică, întrebare adresată de Relver, 8 ani în urmă

Cerința

Se dau lungimile laturilor unui triunghi. Aflați raza cercului înscris triunghiului.


Date de intrare

Programul citește de la tastatură numerele a, b, c, reprezentand lungimile laturilor triunghiului.


Date de ieșire

Programul va afișa pe ecran numărul r, reprezentând lungimea razei cercului înscris cu 2 zecimale exacte, daca triunghiul este valid, altfel se va afisa mesajul Imposibil.


Restricții și precizări

1 ≤ a, b, c ≤ 1000


Intrare


3 4 5

Ieșire


1.00


Salut, solutia mea obtine doar 60 de puncte si nu inteleg de ce.


#include

using namespace std;

double a,b,c,s,p;

int main()

{ cin>>a>>b>>c;

if(!(a+b>=c and a+c>=b and c+b>=a)){cout<<"Imposibil"; return 0;}

p=(a+b+c)/2;

s=sqrt(p*(p-a)*(p-b)*(p-c));

cout<
}


Relver: cout<
Relver: la final este cout fixed setprecision(2) dar nu stiu de ce nu merge

Răspunsuri la întrebare

Răspuns de lucaciucandrei
3

#include <iostream>  

#include <cmath>  

using namespace std;

int main() {

   float a, b, c, r;

   cin >> a >> b >> c;

   if (a + b >= c && a + c >= b && b + c >= a) {

       r = (sqrt(((a + b + c) / 2) * (((a + b + c) / 2) - a) * (((a + b + c) / 2) - b) * (((a + b + c) / 2) - c)) / ((a + b + c) / 2)) * 100;

       if (int(r) % 10 == 0)

           if (int(r) / 10 % 10 == 0)

               cout << int(r) / 100 << ".00";

           else

               cout << int(r) / 100 << '.' << int(r) / 10 % 10 << 0;

       else

           cout << int(r) / 100 << '.' << int(r) / 10 % 10 << int(r) % 10;

   } else

       cout << "Imposibil";

   return 0;

}

Alte întrebări interesante