Другие языки программирования и технологии
написать программу на с++
Дана целочисленная квадратная матрица 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();
}
#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();
}
Похожие вопросы
- Помогите написать программу со switch в СИ
- Какую написать программу?
- Нужно написать программу на паскале
- Помогите написать программу на С. Тема Составление программ с использованием массивов
- написал программу на с++ работает, но есть маленький вопрос
- Как написать программу в паскале
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Помогите на С# написать программу на поиск Синуса с косинусом.
- Как написать программу на Delphi программа которая бы постоянно висело в памяти и через определенное
- Люди помогите написать программы для Pascal очень срочно и очень нужно