В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Уля404
Уля404
20.04.2022 19:28 •  Информатика

Написать программу на с++. дана целочисленная квадратная матрица произвольной размерности. сформировать одномерный массив, в который поместить элементы двумерной матрицы, находящиеся над побочной диагонали; упорядочить
их по возрастанию и найти их среднее арифметическое.

Показать ответ
Ответ:
ivanovaanyuta
ivanovaanyuta
23.05.2020 15:39

//На 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[i][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[i][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[i];
mas[i] = mas[min];
mas[min] = a;
}
cout<<"\nUporyado4enniy massiv:\n";
//Вывод и суммирование элементов отсортированного массива для среднего
for(int i = 0;i<razmer;i++)
{
cout<<mas[i]<<ends;
srednee += mas[i];
}
//Поиск арифметичесгоко реднего}
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];   //Безопасный задания динамического

Matr[i] = new int[X]; // двумерного массива.
for(int j =0; j<X; j++)  //Заполняем матрицу
{    Matr[i][j] = rand()%10-5;} //Числами от -5 до 5
}
cout<<"Ishodnaya matritsa:\n";
Print(X,Matr);
search_and_print(X,Matr);
_getch();
delete [] Matr;
}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота