0 / 0 / 0
Регистрация: 30.03.2018
Сообщений: 11
1

Найти все неповторяющиеся элементы двумерного массива целых чисел

11.04.2018, 15:59. Показов 4769. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу на двумерный массив на языке С++.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2018, 15:59
Ответы с готовыми решениями:

Найти все неповторяющиеся элементы двумерного массива целых чисел
Как сделать это задание через функции Найти все неповторяющиеся элементы Двумерного массива целых...

Найти все неповторяющиеся элементы двумерного массива целых чисел
Помогите с написанием проги: Найти все неповторяющиеся элементы двумерного массива целых...

Найти все неповторяющиеся элементы двухмерного массива целых чисел
Найти все неповторяющиеся элементы двухмерно¬го массива целых чисел

Найти все неповторяющиеся элементы двухмерного массива целых чисел
решите задачу с помощю подпрограммы !!! задача(330): найти все неповторяющиеся элементы...

2
585 / 488 / 371
Регистрация: 05.11.2013
Сообщений: 1,263
Записей в блоге: 6
12.04.2018, 07:13 2
Лучший ответ Сообщение было отмечено 79645645409 как решение

Решение

Есть вот такое решение, правда, "лобовое", проверь

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
//Выводим не-повторяющиеся элементы матрицы
#include <cstdio>
int main() {
 const int n = 3, m = 4;
 int a[n][m] = {
  { 1,2,3,3 },
  { 5,5,7,8 },
  { 9,9,11,9 }
 }; //или ввод матрицы a[n][m]
 int i, j, l, i1, i2, j1, j2, found, found2;
 for (i = 0; i < n * m - 1; i++) {
  found = 1; //надо ли искать "вниз" от текущего элемента
  i1 = i / m; j1 = i % m;
  for (l = 0; l < i; l++) { //если раньше был такой элемент - искать с него не надо
   i2 = l / m; j2 = l%m;
   if (a[i1][j1] == a[i2][j2]) { found = 0; break; }
  }
  if (found) {
   found2 = 0; //найдено ли "вниз" от текущего элемента
   for (j = i + 1; j < n*m; j++) { //ищем после элемента такие же по значению
    i2 = j / m; j2 = j%m;
    if (a[i1][j1] == a[i2][j2]) {
     found2 = 1; break;
    }
   }
   if (!found2) {
    printf("%d ", a[i1][j1]);
   }
  }
 }
 
 getchar();
 return 0;
}
0
306 / 287 / 116
Регистрация: 23.01.2018
Сообщений: 933
12.04.2018, 10:38 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 <unordered_map>
 
using namespace std;
 
int main()
{
    const int n = 3, m = 4;
    int a[n][m] =
    {
        { 1,2,3,3 },
        { 5,5,7,8 },
        { 9,9,11,9 }
    };
    unordered_map<int, bool> u;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            bool uniq = u.find(a[i][j]) == u.cend();
            u[a[i][j]] = uniq;
        }
    }
    for (const auto& p : u) {
        if (p.second) cout << p.first << ' ';
    }
    cout << endl;
    return 0;
}
Кстати, если написать в одну строку u[a[i][j]] = u.find(a[i][j]) == u.cend(); то работает неправильно. Почему - не пойму.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2018, 10:38
Помогаю со студенческими работами здесь

Найти все неповторяющиеся элементы двумерного массива
Решите, пожалуйста. Найти все неповторяющиеся элементы двумерного массива целых чисел...

Найти все элементы массива целых чисел, удовлетворяющих условию
Найти все элементы массива целых чисел, удовлетворяющих условию: остаток от деления на 5 равен 3.

Найти все элементы массива целых чисел, больше заданного числа
не могу написать программу на паскале задан массив mas:array of integer; как сделать так чтоб...

Найти и выдать на печать все элементы линейного массива целых чисел
1. Найти и выдать на печать все элементы линейного массива целых чисел c(n), которые больше...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru