Advertisement
Garey

Sum by row & Column in Matrix

Nov 7th, 2017
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.92 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6.     // size_t - използва се за броячи най-често, защото size_t съдържа само положителни числа.
  7.     size_t rows, columns, i, j;
  8.  
  9.     cout << "Enter matrix rows count: ";
  10.     cin >> rows;
  11.     cout << "Enter matrix columns count: ";
  12.     cin >> columns;
  13.    
  14.  
  15.     // Декларирал съм два масива, защото все пак трябва да запазваме сумата за всеки ред
  16.     // или всяка колона, за да можем накрая да ги изведем.
  17.     int* rows_sum = new int[rows];
  18.     int* columns_sum = new int[columns];
  19.  
  20.     // Динамично заделяне на памет на двумерен масив
  21.     int** array = new int*[rows];
  22.  
  23.     for (i = 0; i < rows; i++) {
  24.         array[i] = new int[columns];
  25.     }
  26.     // Край на динамично заделяне на памет на двумерен масив
  27.  
  28.     // Въвеждане в двумерният масив
  29.     for (i = 0; i < rows; i++) {
  30.         for (j = 0; j < columns; j++) {
  31.             cout << "Enter value for [" << i << "][" << j << "]: ";
  32.             cin >> array[i][j];
  33.         }
  34.     }
  35.  
  36.     // Намираме сумата по редове
  37.     for (i = 0; i < rows; i++) {
  38.         // Зануляваме текущият елемент, тоест му задаваме една начална стойност, за сума е 0.
  39.         // Ако не му зададем такава стойност, то вади собствена произволна, нещо от сорта на 63481
  40.         // и започва да добавя от там.
  41.         rows_sum[i] = 0;
  42.  
  43.         // Събираме за всеки елемент от даденият ред.
  44.         for (j = 0; j < columns; j++)
  45.             rows_sum[i] += array[i][j];
  46.     }
  47.     // Намираме сумата по колони
  48.     for (j = 0; j < columns; j++) {
  49.         // Зануляваме текущият елемент, тоест задаваме му една начална стойност, за сума е 0.
  50.         // Ако не му зададем такава стойност, то вади собствена произволна, нещо от сорта на 63481
  51.         // и започва да добавя от там.
  52.         columns_sum[j] = 0;
  53.  
  54.         // Обърнат метод на горният вариант със редовете. :D
  55.         for (i = 0; i < rows; i++)
  56.             columns_sum[j] += array[i][j];
  57.     }
  58.  
  59.     // Извеждаме сумата на всеки ред по отделно
  60.     for (i = 0; i < rows; i++)
  61.         cout << "Row " << i << " sum is: " << rows_sum[i] << endl;
  62.  
  63.     // Извеждаме сумата на всяка колона по отделно
  64.     for (i = 0; i < columns; i++)
  65.         cout << "Column " << i << " sum is: " << columns_sum[i] << endl;
  66.  
  67.     // Освобождаваме заделената памет
  68.     delete[]array, columns_sum, rows_sum;
  69.  
  70.     system("pause");
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement