Добавил:
nkonstantin87
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:matrix_kr
.txt#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <ctime>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
cout << " Контрольная работа <<Обработка массивов>>" << endl << " Ввод размерности матрицы B (nxm):" << endl;
int n, m, i, j, imax , jmax, imin, jmin;
float max, min;
char m_z;
srand(time(NULL));
do //выбор количества строк массива с проверкой по допустимому диапазону
{
cin.clear();
cin.seekg(0);
cout << " Введите количество строк матрицы (2 до 50): ";
cin >> n;
} while ((n < 2) || (n > 50) || (!cin.good()));
do //выбор количества столбцов массива с проверкой допустимому диапазону
{
cin.clear();
cin.seekg(0);
cout << " Введите количество столбцов матрицы (1 до 50): ";
cin >> m;
} while ((m < 1) || (m > 50) || (!cin.good()));
float **B = new float*[n]; //создание динамического массива B[n][m]
for (int j = 0; j < n; j++)
B[j] = new float[m];
do //выбор метода заполнения массива
{
cout << " Выберите метод заполнения массива: 1 - Случайный, 2 - Вручную: " << endl;
m_z = _getch();
} while ((m_z != '1') && (m_z != '2'));
switch (m_z) //варианты методов заполнения массива
{
case'1':
{
cout << " 'Случайное' заполнение массива:" << endl; //автоматическое заполнение массива
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
B[i][j] = (rand() % (200 * 1000)) / 1000.0;
}
}
break;
}
case'2':
{
cout << " Заполнение массива в ручную. Введите вещественные числа [0, 200]:" << endl; // заполнение массива в ручную
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
do
{
cin.clear();
cin.seekg(0);
cout << "B[" << i + 1 << "][" << j + 1 << "]";
cin >> B[i][j];
} while ((B[i][j] < 0) || (B[i][j] > 200) || (!cin.good()));
}
}
break;
}
}
cout << " Исходная матрица:" << endl; //вывод в консоль исходной матрицы
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
cout << B[i][j] << "\t";
}
cout << endl;
}
max = B[0][0]; //поиск максимального элемента массива
imax = 0;
jmax = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (max <= B[i][j])
{
max = B[i][j];
imax = i;
jmax = j;
}
}
}
min = B[0][0]; //поиск минимального элемента массива
imin = 0;
jmin = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (B[i][j] <= min)
{
min = B[i][j];
imin = i;
jmin = j;
}
}
}
cout << " Максимальный элемент " << max << " Строка: " << imax + 1 << " Столбец: " << jmax + 1 << endl << " Минимальный элемент " << min << " Строка: " << imin + 1 << " Столбец: " << jmin + 1 << endl; //вывод результатов
cout << " Для выхода нажмите любую клавишу" << endl;
system("pause>nul");
return 0;
}
Соседние файлы в предмете Объектно ориентированное программирование