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

айти в массиве A(2n) два числа наиболее похожих по значению - C++

Восстановить пароль Регистрация
 
Татьяна3
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 42
01.12.2010, 15:28     айти в массиве A(2n) два числа наиболее похожих по значению #1
Задание:Из массива A(2n) получить 2 массива B(n) и С(n) в таком виде: найти в массиве A(2n) два числа наиболее похожих по значению, меньшее отправить в массив B, а большее в массив С ,работу продолжать пока все элементы уйдут,а массивы С и B будут заполнены .Используя библиотеку <iostream> .Нужно написать задание с использование функций.Заранее спасибо!
Вложения
Тип файла: doc С9.doc (26.0 Кб, 22 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 15:28     айти в массиве A(2n) два числа наиболее похожих по значению
Посмотрите здесь:

Удалить из последовательности первый по порядку элемент, наиболее близкий по значению к среднему арифметическому C++
C++ Найти все числа встречающиеся в массиве P строго два раза (не упорядочивая самого массива).
C++ Выберите в массиве А два близких по значению элемента и разместить меньший из них в массив B...
C++ Найти числа элементов в двумерном массиве, равных значению Т, вводимому с клавиатуры и перемножьте эти элементы.
C++ Функция, находящая два максимальных числа в массиве и возвращающая структуру с этими числами
C++ Объединить два массива так, чтобы числа в новом массиве не повторялись
В массиве найти два элемента среднее арифметическое которых ближе всего к заданному значению C++
C++ Объединить два похожих класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
snakext
 Аватар для snakext
6 / 6 / 1
Регистрация: 08.06.2010
Сообщений: 35
01.12.2010, 18:52     айти в массиве A(2n) два числа наиболее похожих по значению #2
Так у вас уже было программа почти правильно написана, разве что массивы нужно было сделать динамическими и все вычисления перенести в отдельную функцию. Вот что у меня получилось (работает)

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
#include <iostream>
using namespace std;
void differ_arrays(int *A, int *B, int *C, int n);
int main()
{
        int n;//число чисел
        int ok; 
 
do   
{
 
        cout << "Введите число n:" << endl;
        cin >> n;
        if( n < 1 )//проверка числа n которое должно быть минимум 1
        {
            cout << "Ошибка число n должно быть >= 1 !" << endl;
            return main();
        }
        int* A=new int[2*n];//A массив
        int* B=new int [n];//B массив
        int* C=new int[n];//C массив
        for (int i = 0; i<2*n; i++)
        {
            cout << "Введите " << i+1 << ". числа в массиве A" << endl;
            cin >> A[i];//заполняется А массив
 
        }
        differ_arrays(A,B,C,n);
        cout << " массив B :";
        for (int i = 0; i < n; i++) cout << B[i] << " ";// B массив
        cout << endl << " массив C :";
        for (int i = 0; i < n; i++) cout << C[i] << " ";// C массив
cout << endl <<"Продолжить (1) или завершить (0)?:";
cin >> ok;
}while(ok==1); 
    return 0;
}
void differ_arrays(int *A, int *B, int *C, int n){
    int c_value_address;
    int b_value_address;
    for (int i3 = 0; i3 < n; i3++ )
        {
            int difference = 123456789;
            for ( int i = 0; i < 2*n; i++ )
            {
                for ( int i2 = 0; i2 < 2*n; i2++ )
                    if( (A[i] - A[i2] <= difference) && (A[i] != 0) && (A[i2] !=0) && (A[i] - A[i2] >= 0) && (i != i2))
                    {
                         c_value_address = i;
                         b_value_address = i2;
                        difference = A[i] - A[i2];
                    }
            }
            B[i3] = A[b_value_address];
            C[i3] = A[c_value_address];
            A[b_value_address] = 0;
            A[c_value_address] = 0;
        }
}
Татьяна3
0 / 0 / 0
Регистрация: 19.09.2010
Сообщений: 42
01.12.2010, 20:43  [ТС]     айти в массиве A(2n) два числа наиболее похожих по значению #3
Спасибо огромное вы очень помогли)))
Yandex
Объявления
01.12.2010, 20:43     айти в массиве A(2n) два числа наиболее похожих по значению
Ответ Создать тему
Опции темы

Текущее время: 18:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru