Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- void changeLines(int **matrix, int m, int n, int lineIndex)
- {
- int *tempLine = new int[n];
- for (int i = 0; i < n; i++)
- tempLine[i] = matrix[m - 1][i];
- for (int i = 0; i < n; i++) {
- matrix[m - 1][i] = matrix[lineIndex][i];
- matrix[lineIndex][i] = tempLine[i];
- }
- delete[] tempLine;
- }
- int getExpectedLine(int **matrix, int m, int n)
- {
- int maxZerosAmount = 0;
- int maxZerosAmountLineIndex = 0;
- for (int i = 0; i < m; i++) {
- int zerosAmount = 0;
- for (int j = 0; j < n; j++) {
- if (matrix[i][j] == 0)
- zerosAmount++;
- }
- if (zerosAmount > maxZerosAmount) {
- maxZerosAmount = zerosAmount;
- maxZerosAmountLineIndex = i;
- }
- }
- return maxZerosAmountLineIndex;
- }
- int main()
- {
- int m, n;
- std::cout << "Enter matrix size: ";
- std::cin >> m >> n;
- int **matrix = new int *[m];
- for (int i = 0; i < m; i++) {
- matrix[i] = new int[n];
- std::cout << "Enter " << i << " line: ";
- for (int j = 0; j < n; j++) {
- std::cin >> matrix[i][j];
- }
- }
- int lineIndex = getExpectedLine(matrix, m, n);
- if (lineIndex != m - 1) {
- int **newMatrix = new int *[m];
- for (int i = 0; i < m; i++) {
- newMatrix[i] = new int[n];
- for (int j = 0; j < n; j++) {
- newMatrix[i][j] = matrix[i][j];
- }
- }
- changeLines(newMatrix, m, n, lineIndex);
- std::cout << "Result matrix: " << std::endl;
- for (int i = 0; i < m; i++) {
- for (int j = 0; j < n; j++) {
- std::cout << newMatrix[i][j] << ' ';
- }
- std::cout << std::endl;
- delete[] newMatrix[i];
- }
- delete[] newMatrix;
- } else {
- std::cout << "Max zeros amount at the last line" << std::endl;
- }
- std::cout << "Source matrix: " << std::endl;
- for (int i = 0; i < m; i++) {
- for (int j = 0; j < n; j++) {
- std::cout << matrix[i][j] << ' ';
- }
- std::cout << std::endl;
- delete[] matrix[i];
- }
- delete[] matrix;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement