Вопрос задан 23.06.2023 в 11:59. Предмет Информатика. Спрашивает Шарапова Азалия.

Дан массив A[N][M]. Удалить строки массива, не имеющие ни одного повторяющегося элемента. C++

0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Никифорова Алина.

#include <iostream>

#include <array>

#include <list>

#include <random>

int main() {

system("chcp 1251>nul");

const unsigned int N = 10, M = 10;

int A[N][M];

int reserve;

for (int i = 0; i < N; i++) {

 for (int n = 0; n < M; n++) {

  reserve = n;

  for (int j = 0; j < M; j++) {

   if (A[i][reserve] == A[i][j])

    A.pop(i); // Если бы это был список то он бы удалил элемент

  }

 }

}

system("pause>nul");

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для удаления строк массива A[N][M], которые не содержат ни одного повторяющегося элемента, вам нужно пройти по каждой строке массива и проверить, есть ли повторяющиеся элементы в этой строке. Если таких элементов нет, то вы можете удалить эту строку из массива. Вот пример кода на C++, который выполняет эту задачу:

cpp
#include <iostream> #include <vector> #include <unordered_set> int main() { int N, M; std::cout << "Введите количество строк (N): "; std::cin >> N; std::cout << "Введите количество столбцов (M): "; std::cin >> M; // Создаем двумерный массив A[N][M] std::vector<std::vector<int>> A(N, std::vector<int>(M)); // Ввод элементов массива for (int i = 0; i < N; i++) { std::cout << "Введите элементы строки " << i + 1 << ": "; for (int j = 0; j < M; j++) { std::cin >> A[i][j]; } } // Вектор для хранения индексов строк, которые нужно удалить std::vector<int> rows_to_delete; for (int i = 0; i < N; i++) { std::unordered_set<int> seen; bool has_duplicates = false; for (int j = 0; j < M; j++) { if (seen.find(A[i][j]) != seen.end()) { has_duplicates = true; break; } seen.insert(A[i][j]); } if (!has_duplicates) { rows_to_delete.push_back(i); } } // Удаляем строки из массива for (int i = rows_to_delete.size() - 1; i >= 0; i--) { A.erase(A.begin() + rows_to_delete[i]); } // Вывод обновленного массива std::cout << "Обновленный массив A[N][M] без строк без повторяющихся элементов:" << std::endl; for (const std::vector<int>& row : A) { for (int element : row) { std::cout << element << ' '; } std::cout << std::endl; } return 0; }

Этот код сначала вводит двумерный массив A[N][M], затем проверяет каждую строку на наличие повторяющихся элементов, и, наконец, удаляет строки, не содержащие повторяющихся элементов. Обновленный массив выводится на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос