Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- void createMatrix(int** Matrix, int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- cout << "Элемент[" << i << "][" << j << "]=";
- cin >> Matrix[i][j];
- }
- }
- }
- void showMatrix(int** Matrix, int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- cout << Matrix[i][j] << "\t";
- }
- cout << endl;
- }
- }
- int findIndex(int** Matrix, int n, int m, int Number)
- {
- int i, j;
- for (i = 0; i < n; i++)
- {
- for (j = 0; j < m; j++)
- {
- if (Matrix[i][j] == Number)//находим нужные числа и записываем номера строк
- return i;
- }
- }
- return -1; //у матрицы не может быть такого индекса, поэтому для удобства присваиваем такое значение, если число не нашлось
- }
- bool DoContinue(int** Matrix, int n, int m,int Num1,int Num2)//проверят все нужные нам условия для выполнения смены строк
- {
- if (findIndex(Matrix, n, m, Num1) == -1 || findIndex(Matrix, n, m, Num2) == -1)//если хоть одно число не найдено - не выполняем смену строк
- return false;
- if (findIndex(Matrix, n, m, Num1) == findIndex(Matrix, n, m, Num2))//не выполняем смену строк, если числа в одной строке
- return false;
- return true;//в ином случае, выполняем смену строк
- }
- void change(int** Matrix, int n, int m)
- {
- int i, j;
- int* MatrStroka;
- int Numb1;//искомое число 1
- int Numb2;//искомое число 2
- int S6, S9;//сюда запишем номера строк с нужными числами( минус один поставили, чтобы в случае, если строки нет программа ничего не меняла)
- cout << "Введите первое число для поиска и смены:" << endl;
- cin >> Numb1;
- cout << "Введите первое число для поиска и смены:" << endl;
- cin >> Numb2;
- if (DoContinue(Matrix,n,m,Numb1,Numb2))
- {
- S6 = findIndex(Matrix, n, m, Numb1);
- S9 = findIndex(Matrix, n, m, Numb2);
- MatrStroka = Matrix[S6];
- Matrix[S6] = Matrix[S9];
- Matrix[S9] = MatrStroka;
- }
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n, m;
- cout << "Введите размерность матрицы n*m: " << endl;
- cout << "(количество строк) n= ";
- cin >> n;
- cout << "(количество столбцов) m= ";
- cin >> m;
- int** A = new int* [n];
- for (int i = 0; i < n; i++)
- {
- A[i] = new int[m];
- }
- cout << "Введите матрицу " << endl;
- createMatrix(A, n, m);
- showMatrix(A, n, m);
- cout << endl;
- change(A, n, m);
- cout << "Матрица после изменения:" << endl;
- showMatrix(A, n, m);
- for (int i = 0; i < n; i++)
- delete[] A[i];
- delete[] A;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement