Форум программистов, компьютерный форум CyberForum.ru

Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Установка и настройка Eclipse + MinGW http://www.cyberforum.ru/cpp-beginners/thread638485.html
Установил MinGW и Eclips for C++ не удается запустить тестовый пример Hello world. Ошибка sh -c "autoreconf -i" Cannot run program "sh": Launching failed Как правильно и где прописывать все необходимые пути?
C++ Не могу правильно считать данные из потока Привет всем. У меня есть такая задача. На вход поступает дробь вида 1 1/4 (например). Эта дробь может быть представлена как только целой частью (1), так только дробной частью (1/4) так и полностью. И возникает проблема считывания. Пробовал так: scanf("%lld %lld/%lld", one, two, three); Но тут проблема в том, что приходится вводить все 3 числа. ну либо 2, но это неправильно. Сейчас сделано... http://www.cyberforum.ru/cpp-beginners/thread638477.html
библиотеки алгоритмов C++
Где можно найти библиотеки 3j-, 6j- и 9j-символов?
Синтаксис C++
Кусок кода на C++. Помогите разобраться что означает в данном случае последовательность символов "|=" ? UDF_RC CForm1Class::CForm1( OBJ_PTR *obj, CYCLE cycle ) { INT Error = (INT)NX_OK; NX_DOMAIN Domain; NX_ARRAY Array; switch( cycle )
C++ посимвольное считывание http://www.cyberforum.ru/cpp-beginners/thread638434.html
У меня есть переменная типа string которая равна "000000000000". Мне нужно программно превратить ее вот в такую: 000-000-000-000. Я хочу считать 3 символа и поставить тире и тд.
C++ Сортировка по возрастанию простым выбором Не могу найти ошибку в коде. Выдает вот такую ошибку "Необработанное исключение в "0x002315c0" в "ЛВП.exe": 0xC00000FD: Stack overflow." #include "stdafx.h" #include <iostream> #include <conio.h> #include <math.h> using namespace std; подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2012, 15:35     Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек.
Leonman, вот так думаю будет норм
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <cmath>
#include <vector>
#include <string>
#include <utility>
#include <sstream>
#include <iostream>
using namespace std;
 
string data = "5.4 12.3 0 -5 14 16.9 23 11 -8 25.1"; 
double getLen(
                pair<double, double> pBeg, 
                pair<double, double> pEnd
             );
 
int main()
{
    double x, y;
    vector<pair<double, double> > vec;
    vector<pair<double, double> >::iterator i;
    vector<pair<double, double> >::iterator j;
     
    stringstream ss(data);
    while(!ss.eof())
    {
        if(ss>>x>>y)
            vec.push_back(make_pair(x,y));
    }
 
    vector<pair<double, double> >::iterator imin;imin = vec.begin();
    vector<pair<double, double> >::iterator jmin;jmin = vec.end() - 1;
    vector<pair<double, double> >::iterator imax;imax = vec.begin();
    vector<pair<double, double> >::iterator jmax;jmax = vec.end() - 1;
    for(i = vec.begin(); i < vec.end(); i++)
    for(j = vec.begin(); j < vec.end(); j++)
    {
        if(i != j)
        {
            //Èùåì ìèГ*ГЁГ¬Г*ëüГ*Г® ГіГ¤Г*ë¸Г*Г*ûå òî÷êè
            if(getLen(*i, *j) < getLen(*imin, *jmin))
            {
                imin = i;
                jmin = j;
            }
            //Èùåì Г¬Г*ГЄГ±ГЁГ¬Г*ëüГ*Г® ГіГ¤Г*ë¸Г*Г*ûå òî÷êè
            if(getLen(*imax, *jmax) < getLen(*i, *j))
            {
                imax = i;
                jmax = j;
            }
        }
    }
    cout<<"\tPAIR OF POINTS:\n";
    cout<<"with min Length : "
        <<"("<<(*imin).first<<";"<<(*imin).second<<")"
        <<" - "
        <<"("<<(*jmin).first<<";"<<(*jmin).second<<")"
        <<"\nminLength : "
        <<getLen(*imin, *jmin)<<endl;
    cout<<"with max Length : "
        <<"("<<(*imax).first<<";"<<(*imax).second<<")"
        <<" - "
        <<"("<<(*jmax).first<<";"<<(*jmax).second<<")"
        <<"\nmaxLength :  "
        <<getLen(*imax, *jmax)<<endl;
    return 0;
}
 
double getLen(
                pair<double, double> pBeg, 
                pair<double, double> pEnd
             )
{
    return sqrt
        (
            pow(pEnd.first - pBeg.first,2.0) 
            + 
            pow(pEnd.second - pBeg.second,2.0)
        );
}
Проверка : http://codepad.org/dnc0fPT9
Миниатюры
Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек.  
 
Текущее время: 23:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru