Вопрос задан 26.06.2023 в 01:51. Предмет Информатика. Спрашивает Мусько Денис.

С++ Дана целочисленная матрица A[N][N]. Сформировать одномерный массив X[2N] по следующему

правилу: элементами одномерного массива с нечетными индексами будут элементы главной диагонали матрицы, а с четными - побочной диагонали. Определить, какое значение массива X чаще всего встречается в нем самом.
0 0
Перейти к ответам

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

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

#include <iostream>

#include <vector>

#include <map>

using namespace std;

int main(){

   int n;

   cin >> n;

   vector<vector<int>> a(n, vector<int> (n));

   vector<int> x(2*n);

   map<int,int> m;

   for(int i = 0; i < n; i++)

       for(int j = 0; j < n; j++)

           cin >> a[i][j];

   int cur1 = 1, cur2 = 0, elem = 0, cnt = 0;

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

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

           if(i == j){

               x[cur1] = a[i][j];

               cur1 += 2;

               m[a[i][j]]++;

               if(m[a[i][j]] > cnt){

                   cnt = m[a[i][j]];

                   elem = a[i][j];

               }

           }

           if(i + j == n - 1){

               x[cur2] = a[i][j];

               cur2 += 2;

               m[a[i][j]]++;

               if(m[a[i][j]] > cnt){

                   cnt = m[a[i][j]];

                   elem = a[i][j];

               }

           }

       }

   }

   for(auto &i : x) cout << i << " ";

   cout << "\nThe most popular element is : " << elem;

}

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

Для выполнения этой задачи вам нужно будет выполнить следующие шаги в C++:

  1. Создать целочисленную матрицу A размером N x N и заполнить ее данными.

  2. Создать одномерный массив X размером 2N.

  3. Заполнить одномерный массив X согласно указанным правилам (элементы с нечетными индексами из главной диагонали, с четными - из побочной).

  4. Создать контейнер (например, std::map или std::unordered_map) для подсчета частоты встречаемости значений в массиве X.

  5. Пройти по элементам массива X, увеличивая счетчики в контейнере для каждого значения.

  6. Найти значение, которое встречается чаще всего, и вывести его.

Вот пример кода на C++, который реализует это:

cpp
#include <iostream> #include <vector> #include <map> int main() { const int N = 3; // Задайте размер матрицы N x N int A[N][N]; // Объявление матрицы A int X[2*N]; // Объявление массива X std::map<int, int> frequency; // Контейнер для подсчета частоты встречаемости значений в X // Заполнение матрицы A данными (ваш код) // Заполнение массива X int index = 0; for (int i = 0; i < N; ++i) { X[index++] = A[i][i]; // Главная диагональ X[index++] = A[i][N - 1 - i]; // Побочная диагональ } // Подсчет частоты встречаемости значений в X for (int i = 0; i < 2*N; ++i) { frequency[X[i]]++; } // Находим значение, которое встречается чаще всего int most_frequent_value = 0; int max_frequency = 0; for (const auto& pair : frequency) { if (pair.second > max_frequency) { most_frequent_value = pair.first; max_frequency = pair.second; } } std::cout << "Значение, которое встречается чаще всего: " << most_frequent_value << std::endl; return 0; }

Этот код сначала заполняет массив X в соответствии с указанными правилами, затем подсчитывает частоту встречаемости значений в X и находит значение, которое встречается чаще всего.

0 0

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

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

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

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