N
Natalya43
Добрый вечер! У меня тут возникла проблема. Написала программу( я вообще в этом деле новичок), но она неправильно работает. Помогите пожалуйста разобраться, где у меня ошибка. Заранее благодарю))).
Вот условие задачи.
Даны координаты трех точек на плоскости. Если они могут быть вершинами разностороннего остроугольного треугольника, вывести длины сторон в порядке возрастания, вычислить площадь полученного треугольника.
А вот код моей программы
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale (LC_ALL, "Russian");
float x1, x2, x3, y1, y2, y3, s, a, b, c, p;
cout << "x1 = ";
cin >> x1;
cout << "x2 = ";
cin >> x2;
cout << "x3 = ";
cin >> x3;
cout << "y1 = ";
cin >> y1;
cout << "y2 = ";
cin >> y2;
cout << "y3 = ";
cin >> y3;
a = sqrt(pow((x1 - x2),2) + pow((y1 - y2), 2));
b = sqrt(pow((x1 - x3),2) + pow((y1 - y3), 2));
c = sqrt(pow((x3 - x2),2) + pow((y3 - y2), 2));
if (( a + b > c ) && (a + c > b ) && ( b + c > a ))
{
if ((( a != b )&&(b != c) && ( a != c )) && ((( a*a + b*b ) > c*c ) || (( a*a + c*c ) > b*b ) || (( b*b + c*c ) > a*a )))
{
p = ( a + b + c )/2;
s = sqrt( p*( p - a ) * ( p - b ) * ( p - c ));
if ( (a > b ) && ( a > c ) && ( b > c ))
cout << c << b << a << "s = "<< s << endl;
if ( ( a > b ) && ( a > c ) && ( c > b ))
cout << b << c << a << "s = "<< s << endl;
if ( ( b > a ) && ( b > c ) && ( a > c ))
cout << c << a << b << "s = "<< s << endl;
if ( ( b > a ) && ( b > c ) && ( c > a ))
cout << a << c << b << "s = "<< s << endl;
if ( ( c > b ) && ( c > a ) && ( b > a ))
cout << a << b << c << " s = "<< s << endl;
if ( ( c > b ) && ( c > a ) && ( a > b ))
cout << b << c << a << "s = "<< s << endl;
}
else cout <<"Этот треугольник не является разносторонним остроугольным";
}
else cout << "Заданные точки не могут быть вершинами треугольника ";
return 0;
}
Вот условие задачи.
Даны координаты трех точек на плоскости. Если они могут быть вершинами разностороннего остроугольного треугольника, вывести длины сторон в порядке возрастания, вычислить площадь полученного треугольника.
А вот код моей программы
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale (LC_ALL, "Russian");
float x1, x2, x3, y1, y2, y3, s, a, b, c, p;
cout << "x1 = ";
cin >> x1;
cout << "x2 = ";
cin >> x2;
cout << "x3 = ";
cin >> x3;
cout << "y1 = ";
cin >> y1;
cout << "y2 = ";
cin >> y2;
cout << "y3 = ";
cin >> y3;
a = sqrt(pow((x1 - x2),2) + pow((y1 - y2), 2));
b = sqrt(pow((x1 - x3),2) + pow((y1 - y3), 2));
c = sqrt(pow((x3 - x2),2) + pow((y3 - y2), 2));
if (( a + b > c ) && (a + c > b ) && ( b + c > a ))
{
if ((( a != b )&&(b != c) && ( a != c )) && ((( a*a + b*b ) > c*c ) || (( a*a + c*c ) > b*b ) || (( b*b + c*c ) > a*a )))
{
p = ( a + b + c )/2;
s = sqrt( p*( p - a ) * ( p - b ) * ( p - c ));
if ( (a > b ) && ( a > c ) && ( b > c ))
cout << c << b << a << "s = "<< s << endl;
if ( ( a > b ) && ( a > c ) && ( c > b ))
cout << b << c << a << "s = "<< s << endl;
if ( ( b > a ) && ( b > c ) && ( a > c ))
cout << c << a << b << "s = "<< s << endl;
if ( ( b > a ) && ( b > c ) && ( c > a ))
cout << a << c << b << "s = "<< s << endl;
if ( ( c > b ) && ( c > a ) && ( b > a ))
cout << a << b << c << " s = "<< s << endl;
if ( ( c > b ) && ( c > a ) && ( a > b ))
cout << b << c << a << "s = "<< s << endl;
}
else cout <<"Этот треугольник не является разносторонним остроугольным";
}
else cout << "Заданные точки не могут быть вершинами треугольника ";
return 0;
}