Найдите ,пожалуйста ошибку,в решении задачи{
о целочисленным координатам вершин треугольника (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;
}]
Аноним:
1) Нет определения hypot(). 2) У Герона должен быть квадратный корень из произведения.
Ответы
Ответ дал:
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
Похожие вопросы
1 год назад
1 год назад
1 год назад
2 года назад
8 лет назад