skioe

Лабораторная 4

Dec 21st, 2020 (edited)
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. #define _USE_MATH_DEFINES
  2. #include <cmath>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     setlocale(LC_ALL, "Russian");
  10.  
  11.     int N, count_up, count_main;
  12.     float sum_up, sum_main;
  13.     sum_up = 0;
  14.     sum_main = 0;
  15.     count_up = 0;
  16.     count_main = 0;
  17.  
  18.     cout << "Введите размерность:\n";
  19.     cin >> N;
  20.  
  21.     int** matr = new int* [N]; // Выделяем память под указатели
  22.     cout << "\nЗаполните массив:\n";
  23.  
  24.     for (int i = 0; i < N; i++) // Указатель i
  25.     {
  26.         matr[i] = new int[N];
  27.         for (int j = 0; j < N; j++) // Цикл, заполняющий массив / указатель j
  28.         {
  29.             cout << "Массив [" << i << "][" << j << "] = "; // Показываем, какой элемент сейчас вводим
  30.             cin >> matr[i][j]; // Вводим этот элемент
  31.             if (i > j and matr[i][j] < 0) { // Проверка на то, что число находится ниже гл. диаг и на его отрицательность
  32.                 count_up++; // Счетчик кол-ва таких чисел, чтобы потом найти ср. ар.
  33.                 sum_up += matr[i][j]; // Сумма отрицательных чисел ниже гл. диаг.
  34.             }
  35.             else if (i == j) { // Иначе проверяем, находится ли число на гл. диаг.
  36.                 count_main++; // Если индексы совпадают, т.е. число на гл. диаг., то считаем кол-во таких чисел
  37.                 sum_main += matr[i][j]; // Сумма чисел на гл. диаг.
  38.             }
  39.         }
  40.     }
  41.  
  42.     cout << "\nВведенный массив:" << endl;
  43.     for (int i = 0; i < N; i++)
  44.     {
  45.         for (int j = 0; j < N; j++)
  46.             cout << matr[i][j] << "\t"; // Выводим введенный массив
  47.         cout << endl;
  48.     }
  49.  
  50.     if (count_up == 0) cout << "\nНе найдено отрицательных элементов, лежащих ниже главной диагонали для нахождения ср. ар.!" << endl; // Проверяем, есть ли отрицательные числа ниже гл. диаг., чтобы не было деления на 0
  51.     else cout << "\nСреднее арифметическое отрицательных элементов, лежащих ниже главной диагонали = " << sum_up / count_up << endl; // Вывод ср. ар., если такие числа есть
  52.     cout << "Cреднее арифметическое всех элементов главной диагонали = " << sum_main / count_main << endl; // Выводим ср. ар. чисел гл. диаг
  53.  
  54.     return 0;
  55. }
Add Comment
Please, Sign In to add comment