Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void rankOfMatrix(int** A, int rows, int columns) {
- int rank = rows <= columns ? columns : rows;
- vector<char> line_used(rows);
- for (int i = 0; i < columns; ++i) {
- int j;
- for (j = 0; j < rows; ++j)
- if (!line_used[j] && A[j][i] != 0)
- break;
- if (j == rows)
- --rank;
- else {
- line_used[j] = true;
- for (int p = i + 1; p < columns; ++p)
- A[j][p] /= A[j][i];
- for (int k = 0; k < rows; ++k)
- if (k != j && A[j][i] != 0)
- for (int p = i + 1; p < columns; ++p)
- A[k][p] -= A[j][p] * A[k][i];
- }
- }
- cout << endl << "Ранг матрицы: " << rank << endl << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement