Добрый день! К сожалению я не работаю с C++, но если это поможет, то вот эта задача в Pascal
VAR a,b,c,d:REAL;
PROCEDURE Print_S(x,y,z:REAL);
VAR p,S:REAL;
begin If ((x+y)>z) and ((x+z)>y) and ((y+z)>x) then
begin
p:=x+y+z;
S:=SQRT(p*(p-x)*(p-y)*(p-z));
WriteLn('S= ',S);
end
else
Writeln('Треугольник не существует!');
end;
BEGIN Write('a= ');
ReadLn(a);
Write('b= ');
ReadLn(b);
Write('c= ');
ReadLn(c);
Write('d= ');
ReadLn(d);
WriteLn;
WriteLn('Стороны ',a,'; ',b,'; ',c);
Print_S(a,b,c);
WriteLn;
WriteLn('Стороны ',a,'; ',b,'; ',d);
Print_S(a,b,d);
WriteLn;
WriteLn('Стороны ',a,'; ',c,'; ',d);
Print_S(a,c,d);
WriteLn;
WriteLn('Стороны ',b,'; ',c,'; ',d);
Print_S(b,c,d);
END.