• Предмет: Информатика
  • Автор: pavelyarmolyuk
  • Вопрос задан 2 года назад

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

Ответы

Ответ дал: petyaGavrikov
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

pavelyarmolyuk: К сожалению,это решение ,тоже, не проходит на аналогичном тесте
Аноним: Вы серьезно считаете, что этот ресурс создан для того, чтобы удовлетворять каким-то тестирующим системам?
Аноним: А по решению я не понял, для чего тут long long, если "Все числа не превышают 106 по абсолютной величине."
petyaGavrikov: Так это Ваше long long. Если такие большие числа не нужны, то можно и меньше взять.
Аноним: Ну уж точно не моё )))))
petyaGavrikov: Автора вопроса, конечно.)
Аноним: Так я ему вопрос и задавал
Похожие вопросы