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

smthelse

New member
06.11.2011
4
0
#1
помогите пожалуйста,не могу понять в чем проблема

"Составить программу, которая вычисляет площадь треугольника, если человек задал длины трех сторон 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;
}
//---------------------------------------------------------------------------
 

Vadik(R)

Well-known member
12.12.2007
469
0
#2
Видимо в том, что переменные 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;
}
Вроде так, не проверял ;)
 

smthelse

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