Написать программу на С++. Дана целочисленная квадратная матрица произвольной размерности. Сформировать одномерный массив, в который поместить элементыдвумерной матрицы, находящиеся над побочной диагонали; упорядочить их по возрастанию и найти их среднее арифметическое.
//На VS 2010 решается так, в других средах разработки может нужно к заголовкам добавить .h или убрать подключение пространства имен STD Console application) #include <iostream> #include <stdlib.h> #include <time.h> #include <conio.h> using namespace std; void Print(int m, int ** matr) // Функция печати матрицы на экран { for(int i = 0; i< m; i++) { for(int j = 0; j<m; j++) { cout.width(4); cout<<matr[j]; } cout<<endl; } } void search_and_print(int X, int **M) //Функция поиска элементов с их сортировкой и выводом на экран { int razmer = ((X*X) - X)/2; int *mas = new int [razmer]; int Y = X - 1; float srednee = 0; int index = 0; for (int j = 0; j<Y;j++) { for(int i = 0; i<(X-1);i++ ) { mas[index] = M[j]; index++; } Y--; } for(int i = 0; i<(razmer-1); i++) //Сортировка методом выбора. X-1 раз ищем наименьший элемент. { //Принимаем за наименьший первый элемент из расматриваемых: int min = i; //Поиск минимального элемента из неупорядоченных: for(int j = i+1;j<razmer;j++) { //Если нашли меньший элемент, запминаем его номер: if(mas[j]<mas[min]) min = j; } //Обмен элементов: int a = mas; mas = mas[min]; mas[min] = a; } cout<<"\nUporyado4enniy massiv:\n"; //Вывод и суммирование элементов отсортированного массива для среднего for(int i = 0;i<razmer;i++) { cout<<mas<<ends; srednee += mas; } //Поиск арифметичесгоко реднего} srednee = srednee/razmer; cout<<"\nSrednee: "<<srednee; delete [] mas; } void main() { srand ((unsigned)time(NULL)); int X; cout<<"Vveditrazmer matritsi po gorizontaly i po vertikaly:\n"; cin>>X; int** Matr; Matr = new int* [X]; //Безопасный способ for(int i = 0; i<X; i++) //задания динамического { Matr = new int[X]; // двумерного массива. for(int j =0; j<X; j++) //Заполняем матрицу { Matr[j] = rand()%10-5;} //Числами от -5 до 5 } cout<<"Ishodnaya matritsa:\n"; Print(X,Matr); search_and_print(X,Matr); _getch(); delete [] Matr; }