DimovIvan

C++Advanced-Multidimensional Arrays-Lab-4. Diagonal Difference

Jun 14th, 2021
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.23 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<cmath>
  4.  
  5. std::vector<std::vector<int>> readVec2DfromInput(int size) {
  6.     std::vector<std::vector<int>> vec2D(size, std::vector<int>(size));
  7.     for (auto& row : vec2D)
  8.     {
  9.         for (int& number : row)
  10.         {
  11.             std::cin >> number;
  12.         }
  13.     }
  14.  
  15.     return vec2D;
  16. }
  17.  
  18. int calculateSumPrimeDiag(const std::vector<std::vector<int>>& vec2D, int size) {
  19.     int sum = 0;
  20.     for (size_t i = 0; i < size; i++)
  21.     {
  22.         for (size_t j = 0; j < size; j++)
  23.         {
  24.             if (j == i)
  25.             {
  26.                 sum += vec2D[i][j];
  27.             }
  28.         }
  29.     }
  30.  
  31.     return sum;
  32. }
  33.  
  34. int calculateSumSecondDiag(const std::vector<std::vector<int>>& vec2D, int size) {
  35.     int sum = 0;
  36.     int i = 0;
  37.     int j = size - 1;
  38.  
  39.     while (j >= 0)
  40.     {
  41.         sum += vec2D[i][j];
  42.         i++;
  43.         j--;
  44.     }
  45.     return sum;
  46. }
  47.  
  48. int main() {
  49.     int size;
  50.     std::cin >> size;
  51.     const std::vector<std::vector<int>> vec2D = readVec2DfromInput(size);
  52.     const int sumPimeDiagonal = calculateSumPrimeDiag(vec2D, size);
  53.     const int sumSecondDiagonal = calculateSumSecondDiag(vec2D, size);
  54.     //std::cout << sumPimeDiagonal << std::endl;
  55.     //std::cout << sumSecondDiagonal << std::endl;
  56.     int diffDiagonals = std::abs(sumPimeDiagonal - sumSecondDiagonal);
  57.     std::cout << diffDiagonals << std::endl;
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment