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