Предмет: Информатика,
автор: pavelyarmolyuk
Найдите ,пожалуйста ошибку,в решении задачи{
о целочисленным координатам вершин треугольника (x1,y1), (x2,y2) и (x3,y3) требуется вычислить его площадь.
Входные данные
Входной файл содержит 6 целых чисел x1,y1,x2,y2,x3,y3 – координаты вершин треугольника. Все числа не превышают 106 по абсолютной величине.}
мой код C++[
#include <iostream>
#include <cmath>
#include <string>
#include <math.h>
using namespace std;
int main()
{
long long x1,x2,x3,y1,y2,y3;
double d1,d2,d3;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
d1=hypot((x1-x2),(y1-y2));
d2=hypot((x1-x3),(y1-y3));
d3=hypot((x2-x3),(y2-y3));
double p;
p=(d1+d2+d3)/2;
double s,sp;
sp=p*(p-d1)*(p-d2)*(p-d3);
cout<<sqrt(sp) ;
return 0;
}]
pavelyarmolyuk:
в с++ есть функция hypot ,которая определяет длину гипотенузы,а посмотрев на формулу Герона ,можно увидеть теорему Пифагора ,где d1,d2,d3 гипотенузы, и ,по совместительству, стороны треугольника.
Ответы
Автор ответа:
0
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
long long x1,x2,x3,y1,y2,y3;
double d1,d2,d3;
double p, s;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
d1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
d2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
d3=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
p=(d1+d2+d3)/2;
s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
cout << s;
return 0;
}
Пример:
1 1 4 1 1 5
6
#include <cmath>
using namespace std;
int main()
{
long long x1,x2,x3,y1,y2,y3;
double d1,d2,d3;
double p, s;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
d1=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
d2=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
d3=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
p=(d1+d2+d3)/2;
s=sqrt(p*(p-d1)*(p-d2)*(p-d3));
cout << s;
return 0;
}
Пример:
1 1 4 1 1 5
6
Похожие вопросы
Предмет: Информатика,
автор: Tikiti00ki
Предмет: Алгебра,
автор: KseroksKseri
Предмет: Биология,
автор: Аноним
Предмет: Математика,
автор: Аноним
Предмет: Математика,
автор: slavjnskdon