Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // Вводимая матрица:
- // 1 1 0 1 1
- // 1 0 0 0 1
- // 1 1 0 1 1
- //
- // Новая матрица:
- // 1 1 1 1
- // 1 0 0 1
- // 1 1 1 1
- // Функция вывода матрицы
- void print_matrix(int ** matrix, int sizeX, int sizeY) {
- for (int i = 0; sizeY > i; i++) {
- for (int j = 0; sizeX > j; j++) {
- cout << matrix[j][i] << " ";
- }
- cout << endl;
- }
- }
- // Возвращает индекс столбца с наибольшим кол-во Нулей
- int return_id_max_zero_column_matrix(int ** matrix, int sizeX, int sizeY) {
- // Инициализация переменных для хранения
- // 1) Максимального кол-во нулевой в столбце
- // 2) Индекс такого столбца
- int max = 0;
- int index_max = -1;
- // Поиск столбца
- for (int i = 0; sizeX > i; i++) {
- int count_max = 0;
- for (int j = 0; sizeY > j; j++) {
- if (matrix[i][j] == 0) {
- count_max++;
- }
- }
- if (count_max > max) {
- max = count_max;
- index_max = i;
- }
- }
- return index_max;
- }
- int main() {
- // Оюъявление переменных для хранения рамзеров матрицы
- int sizeY, sizeX;
- // Ввод размера вертикали
- cout << "Введите кол-во строк: ";
- cin >> sizeY;
- // Ввод размера горизонтали
- cout << "Введите кол-во столбцов: ";
- cin >> sizeX;
- cout << endl;
- // Создание двухмерного массива для матрицы
- int ** matrix = new int * [sizeX];
- // Заполнения матрицы
- for (int i = 0; sizeX > i; i++) {
- matrix[i] = new int [sizeY];
- for (int j = 0; sizeY > j; j++) {
- cout << "Введите значение для " << i + 1 << " столбца " << j + 1 << " строки: ";
- cin >> matrix[i][j];
- }
- }
- cout << endl;
- // Вывод вводимой матрицы
- cout << "Вводимая матрица:" << endl;
- print_matrix(matrix, sizeX, sizeY);
- // Нахождение индекса столбца с наибольшим кол-во Нулей
- int index_max = return_id_max_zero_column_matrix(matrix, sizeX, sizeY);
- // Если найден хотя бы один
- // столбец хотя бы с одним нулем
- if (index_max != -1) {
- // Сдвигаем значения
- for (int i = index_max; sizeX > i + 1; i++) {
- for (int j = 0; sizeY > j; j++) {
- matrix[i][j] = matrix[i + 1][j];
- }
- }
- // Удаляем последний столбец
- delete [] matrix[--sizeX];
- cout << endl;
- // Вывод новой матрицы
- cout << "Новая матрица:" << endl;
- print_matrix(matrix, sizeX, sizeY);
- } else {
- cout << "Столбцов с нулем не обнаружено" << endl;
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement