Найдите ,пожалуйста ошибку,в решении задачи{
о целочисленным координатам вершин треугольника (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) У Герона должен быть квадратный корень из произведения.
в с++ есть функция hypot ,которая определяет длину гипотенузы,а посмотрев на формулу Герона ,можно увидеть теорему Пифагора ,где d1,d2,d3 гипотенузы, и ,по совместительству, стороны треугольника.
ой,я не заметил ,что здесь немного каверкает код сейчас всё исправил.
В С++ я что-то не помню hypot, вот в math.h она есть. Но кода я писал комментарий, эта библиотека указана не была. Еще раз - в формуле Герона должен быть корень из всего выражения. Иначе у Вас размерность площади будет в четвертой степени единиц длины.
Ответы
Ответ дал:
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
К сожалению,это решение ,тоже, не проходит на аналогичном тесте
Вы серьезно считаете, что этот ресурс создан для того, чтобы удовлетворять каким-то тестирующим системам?
А по решению я не понял, для чего тут long long, если "Все числа не превышают 106 по абсолютной величине."
Так это Ваше long long. Если такие большие числа не нужны, то можно и меньше взять.
Ну уж точно не моё )))))
Автора вопроса, конечно.)
Так я ему вопрос и задавал
Вас заинтересует
1 год назад
2 года назад
2 года назад
3 года назад
8 лет назад