Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include<time.h>
- void matrixgen(int** matrix, int Rows, int Collums)
- {
- int n = Rows;
- int m = Collums;
- for (int i = 0; i < n; i++)
- {
- matrix[i] = new int[m]; // Создаем элементы
- }
- for (int i = 0; i < n; i++)
- for (int j = 0; j < m; j++)
- *(*(matrix + i) + j) = rand() % 21 - 10;
- }
- void matrixprint(int** matrix, int Rows, int Collums)
- {
- for (int i = 0; i < Rows; i++)
- {
- for (int j = 0; j < Collums; j++)
- printf_s("%6d", *(*(matrix + i) + j));
- printf_s("\n");
- }
- }
- void matrixdelete(int** matrix, int Rows)
- {
- for (int i = 0; i < Rows; i++)
- {
- delete[]matrix[i]; // Удаляем каждый элемент
- }
- delete[] matrix; // А потом массив
- }
- void matrixcopy(int** oldmatrix, int** newmatrix, int Collums, int Rows)
- {
- int countnegative = 0;
- int t = 0;
- for (int j = 0; j < Collums; j++)
- {
- for (int i = 0; i < Rows; i++)
- {
- if (oldmatrix[i][j] < 0)
- countnegative++;
- }
- if (countnegative < 2)
- {
- for (int i = 0; i < Rows; i++)
- {
- newmatrix[i][t] = oldmatrix[i][j];
- }
- t++;
- }
- countnegative = 0;
- }
- }
- void reallocnahou(int** matrix, int Rows, int Collums, int &newcollums)
- {
- int tries = 0;
- int mem=1;
- newcollums = Collums;
- int countnegative = 0;
- for (int j = 0; j < Collums; j++)
- {
- int t = j;
- for (int i = 0; i < Rows; i++)
- {
- if (matrix[i][j] < 0)
- countnegative++;
- }
- if (countnegative >= 2)
- {
- printf_s("collum %d will be deleted\n", j + 1);
- for (int i = 0; i < Rows; i++)
- matrix[i][j] = -100;
- newcollums--;
- }
- countnegative = 0;
- }
- for (int j = 0; j < Collums- mem; j++)
- if (matrix[0][j] == -100)
- {
- for (int t = j; t < Collums - 1 ; t++)
- {
- for (int i = 0; i < Rows; i++)
- matrix[i][t] = matrix[i][t + 1];
- }
- j--;
- mem++;
- }
- for (int i = 0; i < Rows; i++)
- *(matrix + i) = (int*)realloc(*(matrix + i), newcollums * sizeof(int));
- }
- #include <stdlib.h>
- #include <stdio.h>
- #include<time.h>
- #include "beda_s_bashkoy.h"
- int main()
- {
- srand(time(NULL));
- int n, m,newcollums;
- puts("inputed row number");
- scanf_s("%d", &n);
- int** array = new int* [n];// Создаем массив указателей
- puts("input collums number");
- scanf_s("%d", &m);
- puts("generated matrix");
- matrixgen(array, n, m);
- matrixprint(array, n, m);
- puts("new matrix");
- reallocnahou(array, n, m, newcollums);
- matrixprint(array, n, newcollums);
- matrixdelete(array, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement