Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <vector>
- using namespace std;
- // добавление столбца по указанному индексу
- void AddColumn(int** arr, int lines, int& cols, int index) {
- for (int i = 0; i < lines; i++) {
- int* temp = new int[cols + 1];
- for (int j = 0; j < index; j++) {
- temp[j] = arr[i][j];
- }
- temp[index] = 0;
- for (int j = index; j < cols; j++) {
- temp[j + 1] = arr[i][j];
- }
- delete[] arr[i];
- arr[i] = temp;
- }
- cols++;
- }
- // удаление столбца по указанному индексу
- void DelColumn(int** arr, int lines, int& cols, int index) {
- for (int i = 0; i < lines; i++) {
- int* temp = new int[cols - 1];
- for (int j = 0; j < index; j++) {
- temp[j] = arr[i][j];
- }
- for (int j = index + 1; j < cols; j++) {
- temp[j - 1] = arr[i][j];
- }
- delete[] arr[i];
- arr[i] = temp;
- }
- cols--;
- }
- // замена столбцов по указанным индексам
- void ChangeColumn(int** arr, int lines, int cols, int index1, int index2) {
- for (int i = 0; i < lines; i++) {
- int temp = arr[i][index1];
- arr[i][index1] = arr[i][index2];
- arr[i][index2] = temp;
- }
- }
- // транспонирование матрицы - строки становятся столбцами, а столбцы строками
- void TransposeArray(int**& arr, int& lines, int& cols) {
- int** temp = new int* [cols];
- for (int i = 0; i < cols; i++) {
- temp[i] = new int[lines];
- for (int j = 0; j < lines; j++) {
- temp[i][j] = arr[j][i];
- }
- }
- for (int i = 0; i < lines; i++) {
- delete[] arr[i];
- }
- delete[] arr;
- arr = temp;
- int buf = lines;
- lines = cols;
- cols = buf;
- }
- void Print(int** arr, int lines, int cols) {
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- cout << setw(4) << arr[i][j];
- }
- cout << endl;
- }
- cout << endl;
- }
- int main() {
- int lines = 5;
- int cols = 5;
- int** arr = new int*[lines];
- for (int i = 0; i < lines; i++) {
- arr[i] = new int[cols];
- }
- for (int i = 0; i < lines; i++) {
- for (int j = 0; j < cols; j++) {
- arr[i][j] = j + i * cols;
- }
- }
- Print(arr, lines, cols);
- AddColumn(arr, lines, cols, 3);
- Print(arr, lines, cols);
- DelColumn(arr, lines, cols, 3);
- Print(arr, lines, cols);
- ChangeColumn(arr, lines, cols, 2, 4);
- Print(arr, lines, cols);
- TransposeArray(arr, lines, cols);
- Print(arr, lines, cols);
- }
Advertisement
Add Comment
Please, Sign In to add comment