Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

matrix_kr

.txt
Скачиваний:
0
Добавлен:
08.04.2023
Размер:
3.6 Кб
Скачать
#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;
}


Соседние файлы в предмете Объектно ориентированное программирование