Самый простой вариант без освобождения памяти:
#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;
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 j = 0; j < n-1; j++) {
return 0;
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Самый простой вариант без освобождения памяти:
#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;
}