Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
krasy
0 / 0 / 0
Регистрация: 10.12.2014
Сообщений: 29
#1

Найти в массиве пары чисел, разность между которыми минимальна

20.09.2015, 09:19. Просмотров 295. Ответов 5
Метки нет (Все метки)

Дан двум. массив целых чисел(10х10). Найти в этом массиве пары чисел, разница между которыми минимальна.
Например, при вводе массива:
1 50 -3
2 3 4
Программа должна выводить: 1,2 ; 2,3 ; 3,4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2015, 09:19
Ответы с готовыми решениями:

Найти все пары простых чисел, разность между которыми равна 4
Дано натуральное число n>13. Найти все пары простых чисел, разность между...

Выдать пары простых чисел, разность между которыми равна 4, а сами числа меньше n
Дано натуральное число n>13. Выдать пары простых чисел, разность между которыми...

Найти номера пары точек, расстояние между которыми максимально (Паскаль -> С++)
переведите пожалуйста или решите на си++ вот задача: Даны координаты n точек...

Выяснить, имеются ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна двум.
Помогите, пожалуйста, решить задачу: дано натуральное число n. Выяснить, ...

Найти все пары параллельных прямых,расстояние между которыми принадлежит заданному интервалу
Задача состоит в том,что нужно найти все пары параллельных прямых,расстояние...

5
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
20.09.2015, 10:31 #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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::vector     < int   >   T_int_vect;
/////////////////////////////////////////////////////////////////////////////////////////
template< typename  T_cont >
void    print_cont( T_cont   const   &   cont )
{
    std::copy
        (
            cont.begin                                      (),
            cont.end                                        (),
            std::ostream_iterator< T_cont::value_type >     ( std::cout, "\t" )
        );
 
    std::cout   <<  std::endl;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     get_rand_int()
{
    return  rand() % 100;
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    srand(unsigned(time(0)));
    const   int     ARR_SIZE    =   9;
    T_int_vect  int_vect( ARR_SIZE );
 
    std::generate
        (
            int_vect.begin  (),
            int_vect.end    (),
            get_rand_int
        );
 
    std::sort
        (
            int_vect.begin  (),
            int_vect.end    ()
        );
 
    print_cont( int_vect );
 
    T_int_vect  adj_diff;
 
    std::adjacent_difference
        (
            int_vect.begin      (),
            int_vect.end        (),
            std::back_inserter  ( adj_diff )
        );
 
    adj_diff.erase
        (
            adj_diff.begin()
        );
 
    print_cont( adj_diff );
 
    auto    min_diff    =   *std::min_element
                                (
                                    adj_diff.begin  (),
                                    adj_diff.end    ()
                                );
 
    std::cout   <<  min_diff
                <<  std::endl;
 
    auto    it_adj  =   adj_diff.begin();
 
    while   (
                    (
                        it_adj  =   std::find
                                        (
                                            it_adj,
                                            adj_diff.end(),
                                            min_diff
                                        )
                    )
 
                !=  adj_diff.end()
            )
    {
        auto    ind     =       it_adj++
                            -   adj_diff.begin();
 
        std::cout   <<  int_vect[ ind       ]
                    <<  '\t'
                    <<  int_vect[ ind + 1   ]
                    <<  std::endl;
    }
 
    system("pause");
}
0
zss
Модератор
Эксперт С++
6989 / 6551 / 4154
Регистрация: 18.12.2011
Сообщений: 17,286
Завершенные тесты: 1
20.09.2015, 10:40 #3
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
#include <iostream>
#include <ctime>
#include <cstdlib>
int main()
{
    const int n=5,m=5;
    int a[n][m];
    srand((unsigned)time(NULL));
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            a[i][j]=rand()%100;
    int* pa=&a[0][0];
    int dif=abs(pa[0]-pa[1]);
    for(int i=0;i<n*m-1;i++)
        for(int j=i+1;j<m*n;j++)
            if(abs(pa[i]-pa[j])<dif && pa[i]!=pa[j])
                // если не надо учитывать существование одинаковых элементов,
                // то уберите условие && pa[i]!=pa[j]
                dif=abs(pa[i]-pa[j]);
    for(int i=0;i<n*m-1;i++)
        for(int j=i+1;j<m*n;j++)
            if(abs(pa[i]-pa[j])==dif)
                std::cout<<pa[i]<<','<<pa[j]<<std::endl;
 
    system("pause");
    return 0;
}
0
daslex
20.09.2015, 12:05
  #4

Не по теме:

zss,
А массив

PHP
1
2
3
4
5
       -10,   2,   3,   4,   5,
          8,   9,   11,  22,  34,
          55,  66,  77,  88,  99,
          98,  55,  43,  223, 44,
          77,  789, 776, 44,  33
какая разность минимальна?

0
zss
Модератор
Эксперт С++
6989 / 6551 / 4154
Регистрация: 18.12.2011
Сообщений: 17,286
Завершенные тесты: 1
20.09.2015, 15:16 #5
daslex, 1 (или 0).
1
daslex
20.09.2015, 15:23     Найти в массиве пары чисел, разность между которыми минимальна
  #6

Не по теме:

не. Я короче затупил. сори.

0
20.09.2015, 15:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2015, 15:23
Привет! Вот еще темы с ответами:

Найти номера пары точек, расстояние между которыми наибольшее (считать, что такая пара единственная).
Доброго времени, никак не могу понять как делать эти две программки. Во второй...

Найти числа-близнецы: простые числа разность между которыми равна 2
Дано натуральное число n. Среди чисел n, n + 1, …, 2n найти все...

Найти два элемента в массиве, разница между которыми максимальна (оптимизация алгоритма)
Есть правильное решение задачи. Не проходит последние тесты по времени. Задачу...


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

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

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