Advertisement
Toliak

app0

Dec 13th, 2018
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. void changeLines(int **matrix, int m, int n, int lineIndex)
  4. {
  5.     int *tempLine = new int[n];
  6.     for (int i = 0; i < n; i++)
  7.         tempLine[i] = matrix[m - 1][i];
  8.  
  9.     for (int i = 0; i < n; i++) {
  10.         matrix[m - 1][i] = matrix[lineIndex][i];
  11.         matrix[lineIndex][i] = tempLine[i];
  12.     }
  13.  
  14.     delete[] tempLine;
  15. }
  16.  
  17. int getExpectedLine(int **matrix, int m, int n)
  18. {
  19.     int maxZerosAmount = 0;
  20.     int maxZerosAmountLineIndex = 0;
  21.  
  22.     for (int i = 0; i < m; i++) {
  23.         int zerosAmount = 0;
  24.         for (int j = 0; j < n; j++) {
  25.             if (matrix[i][j] == 0)
  26.                 zerosAmount++;
  27.         }
  28.  
  29.         if (zerosAmount > maxZerosAmount) {
  30.             maxZerosAmount = zerosAmount;
  31.             maxZerosAmountLineIndex = i;
  32.         }
  33.     }
  34.  
  35.     return maxZerosAmountLineIndex;
  36. }
  37.  
  38. int main()
  39. {
  40.     int m, n;
  41.     std::cout << "Enter matrix size: ";
  42.     std::cin >> m >> n;
  43.  
  44.     int **matrix = new int *[m];
  45.     for (int i = 0; i < m; i++) {
  46.         matrix[i] = new int[n];
  47.  
  48.         std::cout << "Enter " << i << " line: ";
  49.         for (int j = 0; j < n; j++) {
  50.             std::cin >> matrix[i][j];
  51.         }
  52.     }
  53.  
  54.     int lineIndex = getExpectedLine(matrix, m, n);
  55.     if (lineIndex != m - 1) {
  56.         int **newMatrix = new int *[m];
  57.         for (int i = 0; i < m; i++) {
  58.             newMatrix[i] = new int[n];
  59.  
  60.             for (int j = 0; j < n; j++) {
  61.                 newMatrix[i][j] = matrix[i][j];
  62.             }
  63.         }
  64.  
  65.         changeLines(newMatrix, m, n, lineIndex);
  66.  
  67.         std::cout << "Result matrix: " << std::endl;
  68.         for (int i = 0; i < m; i++) {
  69.             for (int j = 0; j < n; j++) {
  70.                 std::cout << newMatrix[i][j] << ' ';
  71.             }
  72.             std::cout << std::endl;
  73.  
  74.             delete[] newMatrix[i];
  75.         }
  76.         delete[] newMatrix;
  77.     } else {
  78.         std::cout << "Max zeros amount at the last line" << std::endl;
  79.     }
  80.  
  81.     std::cout << "Source matrix: " << std::endl;
  82.     for (int i = 0; i < m; i++) {
  83.         for (int j = 0; j < n; j++) {
  84.             std::cout << matrix[i][j] << ' ';
  85.         }
  86.         std::cout << std::endl;
  87.         delete[] matrix[i];
  88.     }
  89.     delete[] matrix;
  90.    
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement