Вопрос задан 17.06.2023 в 12:34. Предмет Информатика. Спрашивает Болотова Полина.

Дана целочисленная квадратная матрица размером n*m. Написать программу, позволяющую исключать из

нее столбец, в котором расположен минимальный элемент главной диагонали. Программу написать на C++, желательно с комментариями.
0 0
Перейти к ответам

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

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

Самый простой вариант без освобождения памяти:

#include<iostream>

#include<ctime>

signed main(){

   setlocale(LC_ALL, "Rus");

   srand(time(NULL));

   int n, m;

   std::cout << "Введите n: ";

   std::cin >> n;

   std::cout << "Введите m: ";

   std::cin >> m;

   /*

   Выделяем память под матрицу, везде используем переменную n для удобства, матрица у нас квадратная, значит n = m

   */

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

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

       matrix[i] = new int[n];

   }

   /*

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

   */

   std::cout << "Сгенерированная матрица:\n";

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

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

           matrix[i][j] = rand() % 10;

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

       }

       std::cout << std::endl;

   }

   /*

   Ищем минимальный элемент на главной диагонали и его индекс.

   _min - минимальный элемент, _idxMin - индекс минимального элемента

   */

   int _min = matrix[0][0];

   int _idxMin = 0;

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

       if (_min > matrix[i][i]) {

           _min = matrix[i][i];

           _idxMin = i;

       }

   }

   /*

   Удаляем столбец с наименьшим элементом.    

   */

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

       for (int j = _idxMin; j < n - 1; j++)

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

   

   /*

   Выводим на экран изменённую матрицу

   */

   std::cout << "\nМатрица после удаления столбца с минимальным элементом:\n";

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

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

           

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

       }

       std::cout << std::endl;

   }

   return 0;

}


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

Конечно! Вот пример программы на C++, которая исключает столбец с минимальным элементом на главной диагонали:

cpp
#include <iostream> #include <vector> using namespace std; int main() { int n, m; cout << "Введите размерность матрицы (n и m): "; cin >> n >> m; // Создаем и заполняем матрицу vector<vector<int>> matrix(n, vector<int>(m)); cout << "Введите элементы матрицы:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> matrix[i][j]; } } // Находим минимальный элемент на главной диагонали и его столбец int minElement = matrix[0][0]; int minColumn = 0; for (int i = 1; i < min(n, m); i++) { if (matrix[i][i] < minElement) { minElement = matrix[i][i]; minColumn = i; } } // Удаляем столбец с минимальным элементом for (int i = 0; i < n; i++) { matrix[i].erase(matrix[i].begin() + minColumn); } m--; // Уменьшаем количество столбцов // Выводим получившуюся матрицу cout << "Матрица после исключения столбца:" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << matrix[i][j] << " "; } cout << endl; } return 0; }

В данном примере программа сначала запрашивает у пользователя размерность матрицы n и m. Затем пользователю предлагается ввести элементы матрицы.

Программа находит минимальный элемент на главной диагонали и его столбец, перебирая элементы на главной диагонали от (0, 0) до (min(n, m), min(n, m)). Если встречается элемент, который меньше текущего минимального элемента, обновляется значение минимального элемента и запоминается его столбец.

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

Наконец, программа выводит получившуюся матрицу после исключения столбца с минимальным элементом.

0 0

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

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

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

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