Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
virtuos553
48 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
#1

Неправильно выводит результат при нахождении расстояния между отрезками - C++

10.02.2014, 22:16. Просмотров 340. Ответов 1
Метки нет (Все метки)

Пытался сам решить ниже поставленную задачу с нахождением расстояния между ОТРЕЗКАМИ.

Однако где-то ошибка, выводит белеберду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include<iostream>
using namespace std;
 
double skalar(double x1, double y1, double x2, double y2)
{
    return  (x1*x2 + y1*y2);
}
 
int main()
{
    double x1, x2, x3, x4, y1, y2, y3, y4, x, y,l;
    int i, k, s;
 
    double a[4];
    double b[4]; 
    double c[4];
    double d[4];
 
    cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4;
    a[0] = x2-x1;
    a[1] = y2-y1;
 
    b[0] = x3-x2;
    b[1] = y3-y2;
 
    c[0] = x3-x4;
    c[1] = y3-y4;
 
 
    y = (-((x4 - x2)*(x2 - x1) + (y4 - y2)*(y2 - y1))  *  ((x2 - x1)*(x3 - x4) + (y2 - y1)*(y3 - y4))    - ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1))*((x2 - x1)*(x3 - x4) - (y4 - y2)*(y3 - y4))) / (((x3 - x4)*(x2 - x1) + (y3 - y4)*(y2 - y1))*((x3 - x4)*(x2 - x1) + (y3 - y4)*(y2 - y1)) - (((y3 - y4)*(y3 - y4) + (x3 - x4)*(x3 - x4)) *((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1))));
    x = (-(x4 - x2)*(x3 - x4) - (y4 - y2)*(y3 - y4) - y*((y3 - y4)*(y3 - y4) + (x3 - x4)*(x3 - x4))) / ((x2 - x1)*(x3 - x4) + (y2 - y1)*(y3 - y4));
 
 
    a[0] = x*(x2 - x1);
    a[1] = x*(y2 - y1);
    c[0] = y*(x3 - x4);
    c[1] = y*(y3 - y4);
 
l = sqrt((c[0] - a[0])*(c[0] - a[0]) + (c[1] - a[1])*(c[1] - a[1]));
    cout << l;
    system("pause");
 
    
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2014, 22:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильно выводит результат при нахождении расстояния между отрезками (C++):

При вводи данных неправильно выводит на экран - C++
вот код программы #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int x; int y; ...

Найти расстояние между отрезками - C++
Даны координаты точек двух отрезков, найти расстояние между ними.

При значении больше 10 выводит неверный результат - C++
При вводе чисел до 10, например 4 выводится результат 4 = 4.02725. Начина с 10 результат такой 10=10. Почему так ? #include &lt;iostream&gt; ...

Почему выводит неверный результат при вычислении произведения? - C++
Еще 1 вопрос из разряда нубских: #include&lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() { setlocale(0, &quot;&quot;); int...

Класс Triangle, при вводе сторон и угла не выводит результат - C++
При вводе сторон и угла не выводит результат. Где кроется ошибка подскажите пожалуйста.#include &lt;iostream&gt; #include &lt;cmath&gt; ...

Расстояние между двумя произвольно заданными на плоскости отрезками - C++
Ребят, подскажите как найти расстояние между двумя произвольно заданными на плоскости отрезками (данную задачу мне нужно написать в С,...

1
Fene4ka_
91 / 91 / 16
Регистрация: 24.01.2014
Сообщений: 1,215
11.02.2014, 04:14 #2
а что хоть за задача, а то вникать в эти супер формулы не охота, особенно когда переменные названы в честь алфавита ... напишите условия мб утром сделаю
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 04:14
Привет! Вот еще темы с ответами:

Возможное округление при нахождении 2-й производной. При повышении точности программа начинает возвращать 0. - C++
Итак, здравствуйте. Такая проблема. Существует формула для нахождения 2-й производной функции: f''(x) = (f(x + h) - 2f(x) + f(x - h))...

Найти расстояния между точками - C++
Пожалуйста помогите с задачей.На плоскости есть три точки с координатами A(2;3)B(-1;4)C(0;0).Найти расстояния между точками AB BC CA и...

Нахождение расстояния между точками - C++
Вводится количество точек, потом их координаты. Программа должна вывести общее расстояние между ними. Помогите с решением.

Неправильно выводит ответ - C++
#include &quot;iostream&quot; using namespace std; int main () { int a, i, l, n,d=0; cin&gt;&gt;n; for (i=0; i&lt;n; i++) {for(l=0; l&lt;n; l++) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.