Проходят не все тесты c++

286
15 декабря 2017, 03:37

Нужно написать функцию, вычисляющую длину отрезка по координатам его концов. С помощью этой функции вычислить периметр треугольника по координатам трех его вершин. Все числа по модулю не превосходят 30000. значение периметра этого треугольника с точностью до 6 знаков после десятичной точки. Вот моя программа, проходит 25/32 тестов. Что нужно исправить?

#include <iostream>
#include <cmath>
double L (int x, int y ,int x1, int y1)
{
return sqrt( ( x- x1 )*( x- x1 ) + ( y-y1 )*( y-y1 ));
}
long int a,b,c,d,e,f;
double s1,s2,s3,s,p,P;
using namespace std;
int main() {
    cin>>a>>b>>c>>d>>e>>f;
    s1=L(a,b,c,d);
    s2=L(c,d,e,f);
    s3=L(e,f,a,b);
    P=s1+s2+s3;
    cout<<P;
    return 0;
}
Answer 1

Юлия, попробуйте вместо своей функции L() такую и прогоните тесты с ней:

double L (int x, int y ,int x1, int y1)
{
   double x2 = (double)( x-x1 )*( x-x1 );
   double y2 = (double)( y-y1 )*( y-y1 );
   return sqrt( x2 + y2 );
}

PS: да, приведение типа можно было и под sqrt() положить. Но так нагляднее. И вместо double для промежуточных значений можно брать и long int.

PPS: да, в современном С++ принято приводить типы другими словами. Но так компактнее и "на скорость не влияет".

PPPS: и еще, раз у Вас есть ограничение на входные значения, то Вы должны их проверять при вводе.

READ ALSO
C++ Корневая (текущая) папка программы

C++ Корневая (текущая) папка программы

С++ Как задать корневую (текущую) папку для программы, например у меня есть параграмма с файлами картинками (ресурсы программы), но если я откраиваю...

516
Как обновить конкретную область на QGraphicsScene?

Как обновить конкретную область на QGraphicsScene?

Собственно, вопрос следующий: Есть у меня QGraphicsView у которого есть QGraphicsSceneДля QGraphicsScene установлен следующий режим:

331
Не собирается alglib в проекте

Не собирается alglib в проекте

Доброе всем время суток, скачал с оф сайта alglib для С++ В инструкции на ОФ сайте сказано что нужно просто подключить h файл и все будет прекрасно,...

330
Компилятор не может найти omp.h

Компилятор не может найти omp.h

Не получается подключить поддержку OpenMP в XcodeПри попытке компиляции любого кода появляется ошибка:

279