Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <time.h>
- #define N 5
- using namespace std;
- int main() {
- setlocale(LC_ALL, "Russian");
- int ctarr[N][N], helper[N], repl, method;
- srand(time(0));
- cout << "Как желаете заполнить массив?n1. Вручнуюn2. С помощью случайных чиселn";
- cin >> method;
- switch (method) {
- case 1:
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- cout << "Введите " << j + 1 << "-й элемент " << i + 1 << "-й строки: ";
- cin >> ctarr[i][j];
- }
- }
- break;
- case 2:
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- ctarr[i][j] = rand();
- }
- }
- break;
- default: break;
- }
- cout << "nИсходный массив:n";
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- cout << ctarr[i][j] << "t";
- }
- cout << endl;
- }
- cout << "nКакую строку переставить? ";
- cin >> repl;
- repl--;
- for (int i = 0; i < N; i++) {
- helper[i] = ctarr[repl][i];
- }
- for (int i = repl; i > 0; i--) {
- for (int j = 0; j < N; j++) {
- ctarr[i][j] = ctarr[i - 1][j];
- }
- }
- for (int i = 0; i < N; i++) {
- ctarr[0][i] = helper[i];
- }
- cout << "nnПолученный массивnn";
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < N; j++) {
- cout << ctarr[i][j] << "t";
- }
- cout << endl;
- }
- system("pause");
- return 0;
- }
- const int N = 5;
- int** createMatr(int rows, int columns) {
- // массив указателей, которые будут ссылаться на начало строк
- int **m = new int*[rows];
- // сама матрица будет одномерным массивом
- m[0] = new int[rows*columns];
- // размечаем начало строк
- for (int i = 1; i < rows; i++) {
- m[i] = m[i - 1] + columns;
- }
- return m;
- }
- void deleteMatr(int **m) {
- // удаляем массив для матрицы
- delete[] m[0];
- // удаляем массив для указателей на строки
- delete[] m;
- }
- int main() {
- int **ctarr = createMatr(N, N);
- int *helper = new int[N];
- /* остальной код без изменений */
- deleteMatr(ctarr);
- delete[] helper;
- return 0;
- }
Add Comment
Please, Sign In to add comment