Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- using namespace std;
- void removeLine(int** arr, int& al, int& bl, int index, bool isAorB = true) {
- if (isAorB) {
- al--;
- for (int i = index; i < al; i++)
- arr[i] = arr[i + 1];
- }
- else{
- bl--;
- for (int i = 0; i < al; i++)
- for (int j = index; j < bl; j++)
- arr[i][j] = arr[i][j + 1];
- }
- }
- int getZerosLine(int** arr, int a, int b, bool isAorB = true) {
- if (isAorB) {
- for (int i = 0; i < a; i++) {
- bool flag = false;
- for (int j = 0; j < b; j++)
- if (arr[i][j] != 0) {
- flag = true;
- break;
- }
- if (!flag)
- return i;
- }
- }
- else
- {
- for (int j = 0; j < b; j++) {
- bool flag = false;
- for(int i = 0; i < a; i++)
- if (arr[i][j] != 0) {
- flag = true;
- break;
- }
- if (!flag)
- return j;
- }
- }
- return -1;
- }
- int main() {
- setlocale(LC_ALL, "Russian");
- int i, j, col, row;
- cout << "Введите размер массива Столбцы, Строки: ";
- cin >> col >> row;
- int** arr = new int* [col];
- for (i = 0; i < col; i++) {
- arr[i] = new int[row];
- }
- cout << "Заполните массив: " << endl;
- for (i = 0; i < row; i++)
- for (j = 0; j < col; j++)
- cin >> arr[j][i];
- for (i = 0; i < col; i++) {
- int indx = getZerosLine(arr, col, row, true);
- if (indx > -1)
- removeLine(arr, col, row, indx, true);
- }
- for (i = 0; i < row; i++) {
- int indx = getZerosLine(arr, col, row, false);
- if (indx > -1)
- removeLine(arr, col, row, indx, false);
- }
- cout << "Результирующий массив: " << endl;
- for (i = 0; i < row; i++) {
- for (j = 0; j < col; j++)
- cout << setw(4) << arr[j][i] << " ";
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement