Домашнее задание для ПО 2.11 по системному программированию от 02.05.20
учебно-методическое пособие

Склемин Алексей Анатольевич

Составить программу, которая будет генерировать случайные числа в интервале [a;b] и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.

Скачать:

ВложениеРазмер
Microsoft Office document icon 50.doc32 КБ

Предварительный просмотр:

Пятидесятое задание

Составить программу, которая будет генерировать случайные числа в интервале [a;b] и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.


#include

#include

//#include

#include

using namespace std;

 

int main()

{

    srand(time(NULL));

    double a, b; // границы отрезка [a,b]

    cout << "Введите число а: ";

    cin >> a;

    cout << "Введите число в: ";

    cin >> b;

 

    double matrix[10][10]; // матрица случайных чисел

 

    // инициализация двумерного массива случайными числами

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

            matrix[counter_rows][counter_columns] = (double(rand()) / RAND_MAX) * (b - a) + a; // генерация случайных вещестчвенных чисел равномерно распределённых на отрезке [a,b]

 

    cout << "\nСгенерированный массив вещественных чисел" << endl;

    // вывод сгенерированного массива

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

    {

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

            cout << setw(7) << fixed << setprecision(3) <

        cout << endl;

    }

 

    double min = matrix[0][0]; // переменная, для хранения минимального значения

    int nom; // порядковый номер строки с минимальным элеиентом

 

    // поиск минимального элемента в массиве

    for (int counter_rows = 0; counter_rows < 10; counter_rows++)

    {

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

        {

            if (matrix[counter_rows][counter_columns] < min )

            {

                min = matrix[counter_rows][counter_columns]; // сохраняем значение минимального элемента

                nom = counter_rows; // запоминаем номер строки

            }

        }

    }

 

    cout << "\nНомер строки с минимальным элементом: " << (nom + 1) << endl;

    cout << "Минимальный элемент: " << min << endl;

    // перестановка строк

    if (nom != 0) // если минимальный элемент не содержится в первой строке

    {

        double temp[10]; // временный массив для хранения первой строки

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                temp[counter_columns] = matrix[0][counter_columns]; // сохраняем значения первой строки во временный массив

 

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                matrix[0][counter_columns] = matrix[nom][counter_columns]; // сохраняем значения строки с минимальным элементом в перой строке двумерного масссива

 

        for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                matrix[nom][counter_columns] = temp[counter_columns]; // перемещаем значения из временного массива на место строки с мин элементом

 

        // вывод массива с перестановленными строками

        cout << "\nМассив с перестановленными строками" << endl;

        for (int counter_rows = 0; counter_rows < 10; counter_rows++)

        {

            for (int counter_columns = 0; counter_columns < 10; counter_columns++)

                cout << setw(7) << fixed << setprecision(3) << matrix[counter_rows][counter_columns];

            cout << endl;

        }

 

    } // конец if

 

    return 0;

}