C++

Массив, случайные числа, min элемент

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

#include <iostream>
#include <iomanip>
//#include <ctime>
#include <cstdlib>
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) <<matrix[counter_rows][counter_columns];
        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;
}
Теги:
Массив, случайные числа, min элемент
Добавлено: 11 Апреля 2018 09:45:11 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...