wintest

МАТРИЦА: Сума по главен диагонал + селекция на четен елемент

Jan 14th, 2017
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 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 5
  9. #define N 5
  10.  
  11. void evenPlusDiagonalin(int array[][N], size_t rows);
  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.     fillTheArray(array, M);
  21.     printTheArray(array, M);
  22.     cout << endl;
  23.     evenPlusDiagonalin(array, M);
  24.     printTheArray(array, M);
  25.  
  26.     return 0;
  27. }
  28. //З) увеличаване на всички четни елементи от матрицата със сумата от елементите по главния диагонал
  29. //1 2 3  //(0.0)
  30. //4 5 6  //(1.1)
  31. //7 8 9; //(2.2)
  32. void evenPlusDiagonalin(int array[][N], size_t rows){
  33.     int sumOfDiagonal = 0;
  34.     for (size_t i = 0; i < M; i++)
  35.     {
  36.         for (size_t j = 0; j < N; j++){
  37.             if (i == j){
  38.                 sumOfDiagonal += array[i][j];
  39.             }
  40.         }
  41.     }
  42.  
  43.     for (size_t i = 0; i < M; i++)
  44.     {
  45.         for (size_t j = 0; j < N; j++){
  46.             if (array[i][j] == 0){ // ако не броим 0 за четно. Ако я броим - махни този ред
  47.                 break;
  48.             }
  49.             if (array[i][j] %2 == 0 ){
  50.                 array[i][j] += sumOfDiagonal;
  51.             }
  52.         }
  53.     }
  54. }
  55.  
  56. void fillTheArray(int array[][N], size_t rows){
  57.     for (size_t i = 0; i < M; i++)
  58.     {
  59.         for (size_t j = 0; j < N; j++){
  60.             array[i][j] = rand() % 5;
  61.  
  62.         }
  63.     }
  64. }
  65. //принтирам масив
  66. void printTheArray(int array[][N], size_t rows){
  67.     cout << "Оригиналната матрица е това : " << endl;
  68.  
  69.     for (size_t i = 0; i < M; i++)
  70.     {
  71.         for (size_t j = 0; j < N; j++){
  72.             cout << array[i][j] << "\t";
  73.         }
  74.         cout << endl;
  75.     }
  76. }
Add Comment
Please, Sign In to add comment