Расстояние между всеми точками массива

123
22 мая 2019, 12:30

Проинициализировать два массива, которые задают n точек координатами (X, Y) в двумерном пространстве.Описать функцию, которая найдет расстояния между всеми точками и выведет их на экран в виде таблицы.

Считает расстояние только между двумя точками. Что не так в коде?

float alldist(int *x, int *y);
int main()
{ 
    int *x=new int [5] {1, 4, 6, 2, 1}; 
    int *y=new int [5] {6, 7, 8, 9, 10}; 
    cout << "Расстояние между всеми точками:" << alldist(x, y) << endl;
}
float alldist(int *x, int *y) 
{
    float d;
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; i++)
        {
            d = sqrt(pow((x[i+1] - x[i]), 2) + pow((y[j+1] - y[j]), 2));
            return d;
        }
    }
}
Answer 1

Что-то вроде такого:

void alldist(int *x, int *y, int n) 
{
    float d;
    for (int i = 0; i < n-1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            d = sqrt(pow((x[j] - x[i]), 2) + pow((y[j] - y[i]), 2));
            cout <<"dist "<< i << ":" << j << " " << d << " ";
        }
            cout << endl;
    }
}
READ ALSO
QChartView, использование QChartView::RubberBand

QChartView, использование QChartView::RubberBand

В Qt, с помощью QChart реализуется простой графикВ ходе работы возникла необходимость масштабирования по оси X, было решено реализовывать с помощью...

146
Ошибка при работе алгоритма shuffle

Ошибка при работе алгоритма shuffle

Ошибка:error: no match for 'operator+' (operand types are 'std::_List_iterator<double>' and 'int')

153
Одномерный массив

Одномерный массив

Описать функцию, которая в новом массиве получит только положительные значения элементов исходного массиваИспользовать механизм указателей

137