Предмет: Информатика, автор: alinaua18

С++.Дана дійсна квадратна матриця порядку N. (задати її динамічно).

Поміняти місцями стовпчик, в якому знаходиться максимальний елемент матриці з стовпчиком, в якому знаходиться мінімальний елемент матриці. Якщо номера стовпчиків співпадають, то вивести відповідне повідомлення.
Знайти у кожному стовпці суму всіх парних елементів, записати ці суми в окремий масив та вивести його на екран.
Впорядкувати елементи кожного рядка за зростанням методом швидкого сортуванням.

Ответы

Автор ответа: klazik4562185
0

Відповідь:

Пояснення:

#include <iostream>

#include <algorithm>

#include <cstdlib>

using namespace std;

int main() {

   setlocale(LC_ALL, "RUS");

   // Size of the matrix

   int n;

   cout << "Введите размер матрицы:";

   cin >> n;

   // Dynamically allocate memory for the matrix

   int** matrix = new int* [n];

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

       matrix[i] = new int[n];

   }

   // Input the elements of the matrix

   cout << "Введите элементы матрицы:" << endl;

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

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

           cin >> matrix[i][j];

       }

   }

   // Find the column with the maximum element and the column with the minimum element

   int max_col = 0, min_col = 0;

   int max_elem = matrix[0][0], min_elem = matrix[0][0];

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

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

           if (matrix[i][j] > max_elem) {

               max_elem = matrix[i][j];

               max_col = j;

           }

           if (matrix[i][j] < min_elem) {

               min_elem = matrix[i][j];

               min_col = j;

           }

       }

   }

   // Swap the columns if they are different

   if (max_col != min_col) {

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

           swap(matrix[i][max_col], matrix[i][min_col]);

       }

   }

   else {

       cout << "Максимальные и минимальные элементы находятся в одном столбце" << endl;

   }

   // Find the sum of all even elements in each column

   int* sums = new int[n];

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

       sums[j] = 0;

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

           if (matrix[i][j] % 2 == 0) {

               sums[j] += matrix[i][j];

           }

       }

   }

   // Print the sums

   cout << "Суммы четных элементов в каждом столбце: ";

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

       cout << sums[j] << " ";

   }

   cout << endl;

   // Sort the elements in each row using the quick sort algorithm

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

       sort(matrix[i], matrix[i] + n);

   }

   // Print the sorted matrix

   cout << "Отсортированная матрица:" << endl;

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

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

           cout << matrix[i][j] << " ";

           // Deallocate memory for the matrix

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

               delete[] matrix[i];

           }

           delete[] matrix;

           // Deallocate memory for the array of sums

           delete[] sums;

           return 0;

       }

   }

}

Похожие вопросы
Предмет: Математика, автор: tasalipic
Предмет: Алгебра, автор: Nazar228007345
Предмет: Математика, автор: natal19812005
Предмет: Алгебра, автор: vovag2285