Перейти к содержимому
Главная страница » Написать программу на С++. Дана целочисленная квадратная матрица произвольной размерности. Сформировать одномерный массив, в который поместить элементы двумерной матрицы, находящиеся

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

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

Оцените вопрос

1 комментарий для “Написать программу на С++. Дана целочисленная квадратная матрица произвольной размерности. Сформировать одномерный массив, в который поместить элементы двумерной матрицы, находящиеся”

  1. //На 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<<«
    Uporyado4enniy massiv:
    «;
    //Вывод и суммирование элементов отсортированного массива для среднего
    for(int i = 0;i<razmer;i++)
    {
    cout<<mas[i]<<ends;
    srednee += mas[i];
    }
    //Поиск арифметичесгоко реднего}
    srednee = srednee/razmer;
    cout<<«
    Srednee: «<<srednee;
    delete [] mas;
    }
    void main()
    {
    srand ((unsigned)time(NULL));
    int X;
    cout<<«Vveditrazmer matritsi po gorizontaly i po vertikaly:
    «;
    cin>>X;
    int** Matr;
    Matr = new int* [X];   //Безопасный способ
    for(int i = 0; i<X; i++)  //задания динамического

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *