Advertisement
Phoenix_x

Untitled

Dec 18th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.05 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. void enterMatrix(double matrix[6][6]);
  7. void maxAndMinElements(double matrix[6][6]);
  8. void negativeAverage(double matrix[6][6]);
  9. void notZeroMultiplication(double matrix[6][6]);
  10. void printMatrix(double matrix[6][6]);
  11.  
  12. void main()
  13. {
  14.     double matrix[6][6]; // съхранява въведените 5 х 5 и макс елементи от редове, минимални от стълбове
  15.     int size = 0;
  16.  
  17.     while (true)
  18.     {
  19.         cout << "Izberi 1 za vavezdane na masiv KV(5, 5)" << endl;
  20.         cout << "Izberi 2 za namirane na max elementi po red i min po koloni" <<
  21.             "i sahranqvaneto im saotvento kato 6-ta kolonai 6-ti red" << endl;
  22.         cout << "Izberi 3 za namirane na sredno aritmetichno ot otricatelni chisla" << endl;
  23.         cout << "Izberi 4 za namirane na proizvedenie ot chosla razlichni ot 0" << endl;
  24.         cout << "Izberi 5 za izvezdane na matricata KV(6, 6)" << endl;
  25.  
  26.         int izbor;
  27.         cout << "Izbor: ";
  28.  
  29.         do
  30.         {
  31.             cin >> izbor;
  32.         } while (izbor < 1 && izbor > 6);
  33.  
  34.         switch (izbor)
  35.         {
  36.         case 1:
  37.             enterMatrix(matrix);
  38.             break;
  39.         case 2:
  40.             maxAndMinElements(matrix);
  41.             break;
  42.         case 3:
  43.             negativeAverage(matrix);
  44.             break;
  45.         case 4:
  46.             notZeroMultiplication(matrix);
  47.             break;
  48.         case 5:
  49.             printMatrix(matrix);
  50.             break;
  51.         }
  52.     }
  53. }
  54.  
  55. void enterMatrix(double matrix[6][6])
  56. {
  57.     cout << "Vavedete vashata 5 x 5 matrica: " << endl;
  58.  
  59.     for (int i = 0; i < 5; i++) //обхождане по редове
  60.     {
  61.         for (int j = 0; j < 5; j++) //обхождане на колони от ред
  62.         {
  63.             cin >> matrix[i][j];
  64.         }
  65.     }
  66. }
  67.  
  68. void maxAndMinElements(double matrix[6][6])
  69. {
  70.  
  71.     //намиране на максимални елементи по редове
  72.     for (int i = 0; i < 5; i++) //обхождане по редове
  73.     {
  74.         double maxRow = matrix[i][0]; //най-голямо число в реда
  75.  
  76.         for (int j = 0; j < 5; j++) //обхождане на колони от ред
  77.         {
  78.             if (maxRow < matrix[i][j])
  79.             {
  80.                 maxRow = matrix[i][j];
  81.             }
  82.         }
  83.  
  84.         matrix[i][5] = maxRow; // число за 6-та колона от реда
  85.     }
  86.  
  87.     //намиране на минимални елементи по стълбове
  88.     for (int i = 0; i < 6; i++) //обхождане по колони
  89.     {
  90.         double minCol = matrix[i][0]; //минимално число в колоната
  91.  
  92.         for (int j = 0; j < 5; j++) //обхождане по редове
  93.         {
  94.             if (matrix[j][i] < minCol)
  95.             {
  96.                 minCol = matrix[j][i];
  97.             }
  98.         }
  99.  
  100.         matrix[5][i] = minCol; //число за 6-ти ред от колоната
  101.     }
  102. }
  103.  
  104. void negativeAverage(double matrix[6][6])
  105. {
  106.     double suma = 0; //сума на отрицателни числа
  107.     int broj = 0; //брой отрицателни числа
  108.  
  109.     for (int i = 0; i < 6; i++) //обхождане по редове
  110.     {
  111.         for (int j = 0; j < 6; j++) //обхождане на колони от ред
  112.         {
  113.             if (matrix[i][j] < 0)
  114.             {
  115.                 suma += matrix[i][j];
  116.                 broj++;
  117.             }
  118.         }
  119.     }
  120.  
  121.     if (broj == 0)
  122.     {
  123.         cout << "Nqma otricatelni chisla v masiva!" << endl;
  124.     }
  125.  
  126.     else
  127.     {
  128.         cout << "Sredno aritmetichnoto na otricatelnite e: " << suma / broj << endl;
  129.     }
  130. }
  131.  
  132. void notZeroMultiplication(double matrix[6][6])
  133. {
  134.     double multiply = 1;
  135.  
  136.     for (int i = 0; i < 6; i++) //обхождане по редове
  137.     {
  138.         for (int j = 0; j < 6; j++) //обхождане на колони от ред
  139.         {
  140.             if (matrix[i][j] != 0)
  141.             {
  142.                 multiply *= matrix[i][j];
  143.             }
  144.         }
  145.     }
  146.  
  147.     cout << "Proizvedenieto na nenulevite chisla e: " << multiply << endl;
  148. }
  149.  
  150. void printMatrix(double matrix[6][6])
  151. {
  152.     for (int i = 0; i < 6; i++) //обхождане по редове
  153.     {
  154.         cout << "Red " << i + 1 << ": "; // +1, за да изписва ред 1, а не ред 0
  155.  
  156.         for (int j = 0; j < 6; j++) //обхождане на колони от ред
  157.         {
  158.             cout << matrix[i][j] << " ";
  159.         }
  160.  
  161.         cout << endl; // за да може да принтира всеки ред от матрицата на нови редове
  162.     }
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement