JouJoy

Untitled

Jan 18th, 2021
551
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. void create_Matrix(int** Matrix, int n)
  5. {
  6.     for (int i = 0; i < n; i++)
  7.     {
  8.         for (int j = 0; j < n; j++)
  9.         {
  10.             cout << "Элемент[" << i << "][" << j << "]=";
  11.             cin >> Matrix[i][j];
  12.         }
  13.     }
  14.  
  15. }
  16.  
  17.  
  18. void show_Matrix(int** Matrix, int n)
  19. {
  20.     for (int i = 0; i < n; i++)
  21.     {
  22.         for (int j = 0; j < n; j++)
  23.         {
  24.             cout << Matrix[i][j] << "\t";
  25.         }
  26.         cout << endl;
  27.     }
  28. }
  29. /////////////////////////////////////////////////////////////////
  30. int findindex_v(int** Matrix, int I, int n)//ищем индекс отрицательного элемента в строке (задание в)
  31. {
  32.     for (int j = 0; j < n; j++)
  33.     {
  34.         if (Matrix[I][j] < 0)
  35.             return j;
  36.     }
  37.     return -1;//если ничего не нашли возвращаем "мнимый" индекс, чтобы это понять
  38. }
  39.  
  40. int get_b_v(int** Matrix,int I, int n)//задание под буквой в
  41. {
  42.     int j;
  43.     int summ = 0;
  44.     j=findindex_v(Matrix, I, n); //по условию, если нет отриц чисел, получаем сумму 100
  45.     if (j == -1)
  46.         return 100;
  47.     for (int k = j+1; k < n; k++)//после этого элемента суммируем все числа
  48.     {
  49.         summ += Matrix[I][k];
  50.     }
  51.     return summ;
  52. }
  53. /////////////////////////////////////////////////////////////////
  54. //тут по аналогии с заданием в, только слегка изменено
  55. int findindex_g(int** Matrix, int I, int n)//ищем индекс последнего (первого с конца) отрицательного элемента в строке (задание г)
  56. {
  57.     for (int j = n-1; j >=0; j--)
  58.     {
  59.         if (Matrix[I][j] < 0)
  60.             return j;
  61.     }
  62.     return -1;//если ничего не нашли возвращаем "мнимый" индекс, чтобы это понять
  63. }
  64.  
  65. int get_b_g(int** Matrix, int I, int n)//задание под буквой г
  66. {
  67.     int j;
  68.     int summ = 0;
  69.     j = findindex_g(Matrix, I, n); //по условию, если нет отриц чисел, получаем сумму -1
  70.     if (j == -1)
  71.         return -1;
  72.     for (int k = 0; k < j; k++)//до этого элемента суммируем все числа
  73.     {
  74.         summ += Matrix[I][k];
  75.     }
  76.     return summ;
  77. }
  78. int main()
  79. {
  80.     setlocale(LC_ALL, "ru");
  81.     int n;
  82.     cout << "Введите размерность матрицы n*n: " << endl;
  83.     cin >> n;
  84.     int** Matrix = new int* [n];
  85.     for (int i = 0; i < n; i++)
  86.     {
  87.         Matrix[i] = new int[n];
  88.     }
  89.     cout << "Введите матрицу " << endl;
  90.     create_Matrix(Matrix, n);
  91.     show_Matrix(Matrix, n);
  92.     cout << endl;
  93.     //////////////////////////////////////////////////////
  94.     int* b_v = new int[n];
  95.  
  96.     int I;
  97.     for (int I = 0; I < n; I++)
  98.     {
  99.         b_v[I] = get_b_v(Matrix, I, n);
  100.     }
  101.     cout << "Массив чисел для задания В: " << endl;
  102.     for (int i = 0; i < n; i++)
  103.     {
  104.         cout << b_v[i] << ' ';
  105.     }
  106.     cout << endl;
  107.     ///////////////////////////////////////////////////////
  108.     int* b_g = new int[n];
  109.  
  110.     for (int I = 0; I < n; I++)
  111.     {
  112.         b_g[I] = get_b_g(Matrix, I, n);
  113.     }
  114.     cout << "Массив чисел для задания Г: " << endl;
  115.     for (int i = 0; i < n; i++)
  116.     {
  117.         cout << b_g[i] << ' ';
  118.     }
  119.     cout << endl;
  120.     ///////////////////////////////////////////////////////
  121.  
  122.     for (int i = 0; i < n; i++)
  123.         delete[] Matrix[i];
  124.     delete[] Matrix;
  125.  
  126.  
  127.     return 0;
  128. }
RAW Paste Data