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

Определить, имеются ли в матрице только два одинаковых элемента - C++

Восстановить пароль Регистрация
 
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 19:45     Определить, имеются ли в матрице только два одинаковых элемента #1
Написать программу: Определить, имеются ли в двумерном массиве только два одинаковых элемента.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2015, 19:45     Определить, имеются ли в матрице только два одинаковых элемента
Посмотрите здесь:

Даны целые числа с 1 до 95. Имеются ли два подряд нулевых элемента? C++
C++ имеются ли в строке S два соседствующих одинаковых символа
выяснить имеются ли в матрице ненулевые элементы, если имеются, то указать индексы всех ненулевъх элементов C++
Задано бинарное дерево. Определить, есть ли в этом дереве хотя бы два одинаковых элемента. Вывести C++
Дана целочисленная матрица A (N,M), в которой имеются ровно два одинаковых элемента. Найти индексы этих элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aymurat
90 / 84 / 25
Регистрация: 07.11.2014
Сообщений: 572
Завершенные тесты: 5
19.11.2015, 19:53     Определить, имеются ли в матрице только два одинаковых элемента #2
Сравни элементы массива, поставь счетчик. Если == - счетчик++, и проверь равно ли счетчик 2
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 20:46  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #3
Написать программу сможете?
Nosey
 Аватар для Nosey
1184 / 351 / 102
Регистрация: 22.10.2014
Сообщений: 786
Завершенные тесты: 2
19.11.2015, 20:55     Определить, имеются ли в матрице только два одинаковых элемента #4
Цитата Сообщение от garnier Посмотреть сообщение
Написать программу сможете?
Конечно, пожалуйста:

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
#include <iostream>
#include <map>
 
template<typename T, size_t D1, size_t D2>
T* nonUniqueElementsByCount(T (&mat)[D1][D2], size_t count)
{
    std::map<T, size_t> map;
    for (T* begin = reinterpret_cast<T*>(mat), *end = begin + D1 * D2; begin != end; ++begin)
    {
        if (++map[*begin] > count)
            return begin;
    }
    return nullptr;
}
 
int main()
{
    int mat[3][3] = { { 1, 2, 3 }, { 4, 5, 3 }, { 7, 8, 9 } };
    auto target = nonUniqueElementsByCount(mat, 2);
    if (target)
        std::cout << "Встречающийся более двух раз элемент: " << *target << std::endl;
    else
        std::cout << "Встречающегося более двух раз элемента нету " << std::endl;
 
    int mat2[3][3] = { { 1, 2, 3 }, { 4, 5, 3 }, { 3, 8, 9 } };
    auto target2 = nonUniqueElementsByCount(mat2, 2);
    if (target2)
        std::cout << "Встречающийся более двух раз элемент: " << *target2 << std::endl;
    else
        std::cout << "Встречающегося более двух раз элемента нету " << std::endl;
}
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 21:04  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #5
Можно Вас еще немного помучить...И дать на большую часть строк комментарии?
Nosey
 Аватар для Nosey
1184 / 351 / 102
Регистрация: 22.10.2014
Сообщений: 786
Завершенные тесты: 2
19.11.2015, 21:25     Определить, имеются ли в матрице только два одинаковых элемента #6
garnier, Боюсь что это сильно не поможет.
Если для вас верхний код - это чёрная магия, то лучше напишите ваш неработающий вариант и вам помогут.
Если же не магия, то задавайте вопросы что не понятно.
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 21:33  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #7
скажем так, я могу задать просто статический 2х мерный массив, на этом мои действия заканчиваются. С заданием правильного условия у меня проблемы. Вы можете написать код программы...Как нибудь легче для меня?
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
19.11.2015, 21:41     Определить, имеются ли в матрице только два одинаковых элемента #8
создайте еще один одномерный массив ,в нем подсчитывайте количество каждой цифры . потом пробегите по этому массиву и посмотрите ,если какое-то значение равно 2 ,то значит все хорошо
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 21:44  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #9
Я так не умею, только начался си, сам пытаюсь разбираться-никак. Можете написать готовую? Я потыкаюсь после и у Вас поспрашиваю про нее.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
19.11.2015, 21:49     Определить, имеются ли в матрице только два одинаковых элемента #10
C++
1
2
3
4
5
6
7
8
9
10
11
const int size;//какое то большое число ,например максимум  в матрице
int b[size];
for(int i=0;i<n;i++)
 for(int j=0;j<m;j++)
   b[a[i][j]]++;
for(int i=0;i<size;i++)
  if(b[i]==2){
    cout<<"имеются";
    return 0;
  }
cout<<"не имеются";
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 22:05  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #11
Вот, что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    const int size = 10; int m, n, b, a, i;
    int b[size] = {2,3,51,22,44,5,6,7,8,2};
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            b[a[i][j]]++;
    for (int i = 0; i < size; i++)
        if (b[i] == 2) {
            std::cout << "имеются";
            return 0;
        }
    std::cout << "не имеются";
}
Дальше нужно исправить ошибки...
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
19.11.2015, 22:11     Определить, имеются ли в матрице только два одинаковых элемента #12
а матрица то где ,в ней элементы должны быть
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 22:15  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #13
Вот задание, "Определить, имеются ли в двумерном массиве только два одинаковых элемента."
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
19.11.2015, 22:23     Определить, имеются ли в матрице только два одинаковых элемента #14
ну и где двумерный массив у вас
Nosey
 Аватар для Nosey
1184 / 351 / 102
Регистрация: 22.10.2014
Сообщений: 786
Завершенные тесты: 2
19.11.2015, 22:23     Определить, имеются ли в матрице только два одинаковых элемента #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main()
{
    // const - не для украшения, size, m, n - должны быть известны во время компиляции,
    // во время выполнения их вводить нельзя. (std::cin >> m) - не выдет.
    const int size = 10; // максимальное значение элемента в матрице, не количество а значение.!!
    const int m = 3; // размеры матрицы
    const int n = 3; // размеры матрицы
    int b[size] = { 0 }; // вспомогательный массив размером с максимальный элемент матрицы.
    int a[n][m] = { { 1, 2, 3 }, { 4, 5, 3 }, { 7, 8, 9 } }; //непосредственно сама матрица в которой ищем повторения.
    for (int i = 0; i < n; i++) // перебираем матрицу
        for (int j = 0; j < m; j++) // перебираем матрицу
            b[a[i][j]]++; // в вспомогательный массив b по индексу равному значению матрицы добавим 1.
    // по завершению циклов в вспомогательном массиве индекс означает значение из нашей матрицы,
    //и значение в этом массиве равно количеству повторений в матрице.
    for (int i = 0; i < size; i++)
        if (b[i] == 2) // если что-то повторилось два раза - значит бинго. 
        {
            std::cout << "имеются";
            return 0;
        }
    std::cout << "не имеются";
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 22:40     Определить, имеются ли в матрице только два одинаковых элемента
Еще ссылки по теме:

Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента C++
C++ Определить есть ли в последовательности хотя бы два одинаковых элемента
C++ Определить, имеются ли в матрице числа, в которых первая и последняя цифры совпадают

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

Или воспользуйтесь поиском по форуму:
garnier
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 114
19.11.2015, 22:40  [ТС]     Определить, имеются ли в матрице только два одинаковых элемента #16
Большое спасибо, буду разбираться.
Yandex
Объявления
19.11.2015, 22:40     Определить, имеются ли в матрице только два одинаковых элемента
Ответ Создать тему
Опции темы

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