Домашнее задание для ПО 2.11 по системному программированию от 02.05.20
учебно-методическое пособие
Составить программу, которая будет генерировать случайные числа в интервале [a;b] и заполнять ими двумерный массив размером 10 на 10. В массиве необходимо найти номер строки с минимальным элементом. Поменять строки массива местами, строку с минимальным элементом и первую строку массива. Организовать удобный вывод на экран.
Скачать:
Вложение | Размер |
---|---|
50.doc | 32 КБ |
Предварительный просмотр:
Пятидесятое задание
Составить программу, которая будет генерировать случайные числа в интервале [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;
}