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

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

Войти
Регистрация
Восстановить пароль
 
Kizer
78 / 78 / 15
Регистрация: 20.11.2009
Сообщений: 326
#1

Сравнение наиболее близких по значению элементов массива - C++

15.12.2013, 19:08. Просмотров 427. Ответов 0
Метки нет (Все метки)

Задача:
Из элементов массива A(2n) получить массивы B(n) и C(n) следующим образом. Выбрать в массиве A два наиболее близких по значению элемента, меньший из них поместить в массив B, больший — в массив C. Продолжить выбор из оставшихся элементов до полного заполнения массивов B и C.

Решение:
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
template <typename Type>
void ArrayCreate (Type *A, Type *B, Type *C, int size)
{
    int i, j, k = 0;
    int f_index =0;
    int s_index =1;
        
    while(size>1)
    {
    //float difference = std::numeric_limits<float>::max();
    //  long double difference = std::numeric_limits<long double>::infinity();
        
        int difference  = abs(A[k] - A[k+1]);
 
            for(i = 0; i<size-1; i++)
            {
                for(j = i+1; j<size; j++)
                {
                    
                    int temp = abs(A[i] - A[j]);
                    
                    if (difference > temp)
                    {
                        difference = temp;
                        f_index = i;
                        s_index = j;
                    }
                }
            }
 
        if(A[f_index] > A[s_index])
        {
            B[k] = A[f_index];
            C[k++] = A[s_index];
        }
        else
        {
            B[k] = A[s_index];
            C[k++] = A[f_index];
        }
 
 
        for(j=f_index; j<size; j++)
            A[j] = A[j+1];
        size--;
        for(j=s_index-1; j<size-1; j++)
            A[j] = A[j+1];
        size--;
    }
}
Где-то я что-то делаю не так, ибо вылезаю при сравнении за границы массива, пожалуйста подскажите где я не прав. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 19:08     Сравнение наиболее близких по значению элементов массива
Посмотрите здесь:

Найти элемент массива, наиболее близкий к среднему значению всех элементов массива - C++
Найти элемент массива, наиболее близкий к среднему значению всех элементов массива. Найти среднее арифметические положительных и...

Быстрый поиск наиболее близких вершин графа - C++
Всем привет, у меня имеется некая задача и её суть состоит в том, что мне нужно найти расстояние между двумя наиболее близкими вершинами...

Выберите в массиве А два близких по значению элемента и разместить меньший из них в массив B... - C++
Задан массив А размером 2n. Выберите в массиве А два близких по значению элемента и разместить меньший из них в массив B (n), а больший - в...

Найти элемент наиболее близкий к среднему арифметическому значению в массиве из 10 элементов - C++
1. Найти элемент наиболее близкий к среднему арифметическому значению в массиве из 10 элементов.

Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов. - C++
Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее эле- ...

Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех элементов - C++
Дана матрица размера M×N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов. ...

Найти количество элементов массива, каждый из которых меньше по значению, чем среднее среди элементов - C++
Для заданного массива натуральных чисел найти количество элементов каждый из которых меньше по значению чем среднее среди элементов

Найти количество элементов массива, каждый из которых меньше по значению чем среднее среди элементов - C++
Для заданного массива действительных чисел найти количество элементов каждый из которых меньше по значению чем среднее среди...

айти в массиве A(2n) два числа наиболее похожих по значению - C++
Задание:Из массива A(2n) получить 2 массива B(n) и С(n) в таком виде: найти в массиве A(2n) два числа наиболее похожих по значению, меньшее...

Сравнение элементов массива - C++
Доброе время суток. У меня такой вопрос. Как сравнить элементы массива,допустим массив состоит из пяти элентов???

Сравнение элементов массива - C++
Всем привет, люди помогите написать программу. У нас есть упорядоченный массив, в этот массив вводим число и программа сравнивает это число...

Сравнение элементов массива - C++
Подскажите как модернизировать функцию заполнения массива с клавиатуры, чтобы она сравнивала каждое введенное значение со всеми предыдущими...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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