Другие языки программирования и технологии

написать программу на с++

Дана целочисленная квадратная матрица A[NxN]. Написать программу, вычисляющую наибольшее значение среди компонентов матрицы расположенных ниже главной диагонали.
#include < iostream >
#include < windows.h >
#include < cstdlib >
#include < ctime >
#include < iomanip >

using namespace std;

//Получение размеров окна консоли без прокрутки
void GetConsBuff(int &x, int &y)
{

HANDLE hWndConsole;
if (hWndConsole = GetStdHandle(-12))
{
CONSOLE_SCREEN_BUFFER_INFO consoleInfo;
if (GetConsoleScreenBufferInfo(hWndConsole, &consoleInfo))
{
x = consoleInfo.srWindow.Right - consoleInfo.srWindow.Left + 1;
y = consoleInfo.srWindow.Bottom - consoleInfo.srWindow.Top + 1;
}
else
printf("Error: %d\n", GetLastError());
}
else
printf("Error: %d\n", GetLastError());
}

//Установка размеров буфера консоли
void SetConsBuff(int char_in_line, int count_string)
{
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);

COORD size;
size.X = char_in_line; // кол-во символов на строку
size.Y = count_string; // увеличиваем до 1000 - строк, можно хоть 2000
SetConsoleScreenBufferSize(hout, size);
}

void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");
srand(time(NULL));

cout << "Введите размер матрицы ";
int n;
for (;;)
{
cin >> n;
if (cin.rdbuf()->in_avail() != 1 || n < 2)
{
cin.clear();
cin.ignore(cin.rdbuf()->in_avail(), '\n');
cout << "Ошибка при вводе. Повторите ";
}
else
break;
}

int sz_x, sz_y;
GetConsBuff(sz_x, sz_y);
if (sz_x <= n * 5)
{
sz_x = n * 5 + 1;
}
if (sz_y < n * 2 + 8)
{
sz_y = n * 2 + 8;
}
SetConsBuff(sz_x, sz_y);

int **a = new int*[n];
for (unsigned count = 0; count < n; count++)
a[count] = new int[n];

cout << endl << "Исходная матрица" << endl;
cout << endl;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < n; ++j)
{
a[i][j] = -50 + rand() % 101;
cout << setw(5) << a[i][j];
}
cout << endl;
cout << endl;
}

int maxx = 0;
bool b = true;
for (int i = 1; i < n; ++i)
{
for (int j = 0; j < i; ++j)
{
if (b)
{
maxx = a[i][j];
b = false;
}
if (a[i][j] > maxx)
{
maxx = a[i][j];
}
}
}
cout << "Наибольшее значение среди компонентов матрицы расположенных ниже главной диагонали = " << maxx << endl;

cin.get(); cin.get();
}
Фанис Нурмухаметов
Фанис Нурмухаметов
8 552
Лучший ответ