0 / 1 / 0
Регистрация: 15.02.2020
Сообщений: 55
|
||||||
1 | ||||||
Периметр треугольника по трём точкам11.06.2023, 22:27. Показов 1529. Ответов 8
Доброго времени суток. Помогите решить задачу. На 17 тесте неверный ответ, но я уже не представляю что тут может быть не так.
Напишите функцию, вычисляющую длину отрезка по координатам его концов. С помощью этой функции напишите программу, вычисляющую периметр треугольника по координатам трех его вершин. Формат ввода: На вход программе подается 6 целых чисел — координат x1, y1, x2, y2, x3, y3 вершин треугольника. Все числа по модулю не превосходят 30000. Формат вывода: Выведите значение периметра этого треугольника с точностью до 6 знаков после десятичной точки. Я написал следующий код:
0
|
11.06.2023, 22:27 | |
Ответы с готовыми решениями:
8
Найти наибольший периметр треугольника, вершины которого принадлежат различным точкам множества Угол по трем точкам Функция: вычисление площади произвольного треугольника по заданным трем сторонам треугольника Известна гипотенуза С и противолежащий угол B прямоугольного треугольника. Найти периметр треугольника |
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
||||||
12.06.2023, 10:58 | 2 | |||||
теряется точность при округлении double и float, например, если у вас в итоге получается число 3,1525645, то оно с этим флагом округлится до 3,152564. Потому что представление double(float) в компьютере в данном случае такого вида: 3,1525645 = 3,1525644(9), поэтому и округление идет до 64, а не до 65.
Обойти проблему можно так:
0
|
0 / 1 / 0
Регистрация: 15.02.2020
Сообщений: 55
|
||||||
12.06.2023, 11:29 [ТС] | 3 | |||||
дополнил код:
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
12.06.2023, 11:37 | 4 |
А если округлять до 6 знаков не сумму длин отрезков, а каждую длину отрезка, например перед возвратом в main.
0
|
0 / 1 / 0
Регистрация: 15.02.2020
Сообщений: 55
|
|
12.06.2023, 12:32 [ТС] | 5 |
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
12.06.2023, 13:17 | 6 |
Сообщение было отмечено 4eJIMegBegocBuH как решение
Решение
Может тест с подковыркой, например подается два отрезка с одинаковыми координатами, а третий с другими, представляющих собой угол? Тогда если соединить линией концы угла, то периметр треугольника будет другим.
Добавлено через 1 минуту Или вообще координаты подаются такие, что треугольника не может быть в принципе. Добавлено через 13 минут Мне еще думается, что скорее всего происходит переполнение int, если координаты достаточно велики, например от -30000 до 30000. Тогда 60000 в квадрате, это переполнение, все биты которые не влезают в 4 байта, просто откидываются. Попробуйте int заменить на long long.
1
|
0 / 1 / 0
Регистрация: 15.02.2020
Сообщений: 55
|
|
12.06.2023, 13:21 [ТС] | 7 |
0
|
419 / 206 / 64
Регистрация: 13.05.2020
Сообщений: 385
|
|
12.06.2023, 13:30 | 8 |
0
|
14.06.2023, 20:43 | 9 |
0
|
14.06.2023, 20:43 | |
14.06.2023, 20:43 | |
Помогаю со студенческими работами здесь
9
Даны стороны треугольника в массиве, необходимо найти периметр и площадь треугольника По трем точкам построить многоугольник Нарисовать параболу по трем заданным точкам Даны три числа, длины сторон треугольника. Если возможно построение треугольника с данными сторонами, найти его периметр Массивы. Геометрия. Об окружности минимального радиуса по трем точкам Определить, можно ли по трем точкам на плоскости построить треугольник Найти координаты вершины параболы по трем заданым точкам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |