Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _USE_MATH_DEFINES
- #include <cmath>
- #include <iostream>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russian");
- int N, count_up, count_main;
- float sum_up, sum_main;
- sum_up = 0;
- sum_main = 0;
- count_up = 0;
- count_main = 0;
- cout << "Введите размерность:\n";
- cin >> N;
- int** matr = new int* [N]; // Выделяем память под указатели
- cout << "\nЗаполните массив:\n";
- for (int i = 0; i < N; i++) // Указатель i
- {
- matr[i] = new int[N];
- for (int j = 0; j < N; j++) // Цикл, заполняющий массив / указатель j
- {
- cout << "Массив [" << i << "][" << j << "] = "; // Показываем, какой элемент сейчас вводим
- cin >> matr[i][j]; // Вводим этот элемент
- if (i > j and matr[i][j] < 0) { // Проверка на то, что число находится ниже гл. диаг и на его отрицательность
- count_up++; // Счетчик кол-ва таких чисел, чтобы потом найти ср. ар.
- sum_up += matr[i][j]; // Сумма отрицательных чисел ниже гл. диаг.
- }
- else if (i == j) { // Иначе проверяем, находится ли число на гл. диаг.
- count_main++; // Если индексы совпадают, т.е. число на гл. диаг., то считаем кол-во таких чисел
- sum_main += matr[i][j]; // Сумма чисел на гл. диаг.
- }
- }
- }
- cout << "\nВведенный массив:" << endl;
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- cout << matr[i][j] << "\t"; // Выводим введенный массив
- cout << endl;
- }
- if (count_up == 0) cout << "\nНе найдено отрицательных элементов, лежащих ниже главной диагонали для нахождения ср. ар.!" << endl; // Проверяем, есть ли отрицательные числа ниже гл. диаг., чтобы не было деления на 0
- else cout << "\nСреднее арифметическое отрицательных элементов, лежащих ниже главной диагонали = " << sum_up / count_up << endl; // Вывод ср. ар., если такие числа есть
- cout << "Cреднее арифметическое всех элементов главной диагонали = " << sum_main / count_main << endl; // Выводим ср. ар. чисел гл. диаг
- return 0;
- }
Add Comment
Please, Sign In to add comment