Advertisement
wintest

МАТРИЦА:Сума с рекурсия

Jan 15th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <clocale>
  3. #include <ctime>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. #define M 3
  9. #define N 3
  10.  
  11. int sumOfElements(int array[][N], size_t rows, int sum);
  12. void fillTheArray(int array[][N], size_t rows);
  13. void printTheArray(int array[][N], size_t rows);
  14.  
  15. int main(){
  16.     setlocale(LC_ALL, "Bulgarian");
  17.     srand(time(NULL));
  18.  
  19.     int array[M][N];
  20.     int sum = 0;
  21.     fillTheArray(array, M);
  22.     printTheArray(array, M);
  23.     cout << endl;
  24.     cout<<sumOfElements(array,0,sum);
  25.     return 0;
  26. }
  27. //Да се състави рекурсивна функция, която намира сума на елементите на двумерен масив с M реда и N стълба, където M и N са естествени числа
  28. int sumOfElements(int array[][N], size_t rows,int sum){
  29.  
  30.         for (size_t j = 0; j < N; j++){
  31.             sum += array[rows][j];
  32.         }
  33.         if (rows < M-1) sumOfElements(array, ++rows, sum);
  34.         else return sum;
  35. }
  36. //пълня масива
  37. void fillTheArray(int array[][N], size_t rows){
  38.     for (size_t i = 0; i < M; i++)
  39.     {
  40.         for (size_t j = 0; j < N; j++){
  41.             array[i][j] = rand() % 4 ;
  42.  
  43.         }
  44.     }
  45. }
  46. //принтирам масив
  47. void printTheArray(int array[][N], size_t rows){
  48.     cout << "Оригиналната матрица е това : " << endl;
  49.  
  50.     for (size_t i = 0; i < M; i++)
  51.     {
  52.         for (size_t j = 0; j < N; j++){
  53.             cout << array[i][j] << "\t";
  54.         }
  55.         cout << endl;
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement