• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

не могу понять в чем проблема

  • Автор темы smthelse
  • Дата начала
S

smthelse

помогите пожалуйста,не могу понять в чем проблема

"Составить программу, которая вычисляет площадь треугольника, если человек задал длины трех сторон A,B,C. При вычислении использовать формулу Герона: S=sqrt(P(P-A)(P-B)(P-C))
, где Р — полупериметр. Перед вычислением площади про-верить, существует ли треугольник с заданными сторонами"


C++:
//---------------------------------------------------------------------------
#include <math.h>
#include <stdio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{ int a=12,b=7,c=8,p,s;
if ((a>=(b+c))|(b>=(a+c))|(c>=(a+B)));
else ("Impossible triagle");
p=(a+b+c)/2;
s=(sqrt(p*(p-a)*(p-B)*(p-c)));

return 0;
}
//---------------------------------------------------------------------------
 
V

Vadik(R)

Видимо в том, что переменные p и s целого типа.
Ну и в том, что ещё результат на экран выводить надо B)
C++:
#include <cmath>
#include <iostream>

using namespace std;

int main()
{
long double a = 12.0, b = 7.0, c = 8.0, p, s;
if ((a < b + c) && (b < a + c) && (c < a + b))
{
p = (a + b + c) / 2;
s = pow(p * (p - a) * (p - b) * (p - c), 0.5);
cout.setf(ios::fixed);
cout.precision(6);
cout << "S = " << s << endl;
}
else
cout << "Impossible triangle" << endl;
return 0;
}
Вроде так, не проверял ;)
 
S

smthelse

Vadik®, спасибо за помощь,только неправильно считает,и мне непонятны функции "cout.setf(ios::fixed);cout.precision(6)" ,т.к я только начинаю изучать язык С++,учусь на программиста
 
V

Vadik(R)

cout.setf(ios::fixed);cout.precision(6)
Эти фунции ставят фиксированный формат вывода дробных чисел, и, соответственно, точность шесть знаков после запятой.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!