#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
const/*<--- тип переменая которую не льзя менять после создания*/ int ZAGLYSHKA = 20;
void vivod_dvymernogo_masiva(int masiv[ZAGLYSHKA][ZAGLYSHKA], int STROKI, int STOLBCY); // <------ Импортируем функцию вывода
int main()
{
int N_Kol_Strok, M_Kol_Stolbcov;
cout << "Введите кол-во строк: "; cin >> N_Kol_Strok;
cout << "Введите кол-во столбцов: "; cin >> M_Kol_Stolbcov;
int** masiv[N_Kol_Strok][M_Kol_Stolbcov];
}
// красивый вывод двумерного массива, всё считается внутри
void vivod_dvymernogo_masiva(int masiv[ZAGLYSHKA][ZAGLYSHKA], int stroki, int stolbcy)
{
int stroka, stolbec, i;
int shirina = 1;
int chislo, kol;
// ищем самое длинное число (минус тоже считается за символ)
for (stroka = 0; stroka < stroki; stroka++)
{
for (stolbec = 0; stolbec < stolbcy; stolbec++)
{
chislo = masiv[stroka][stolbec];
kol = 0;
if (chislo <= 0)
{
kol = 1;
}
while (chislo != 0)
{
chislo = chislo / 10;
kol++;
}
if (kol > shirina)
{
shirina = kol;
}
}
}
// верхняя линия
for (stolbec = 0; stolbec < stolbcy; stolbec++)
{
cout << "+";
for (i = 0; i < shirina + 2; i++)
{
cout << "-";
}
}
cout << "+" << endl;
// строки с числами и линия под каждой строкой
for (stroka = 0; stroka < stroki; stroka++)
{
cout << "|";
for (stolbec = 0; stolbec < stolbcy; stolbec++)
{
cout << " " << setw(shirina) << masiv[stroka][stolbec] << " |";
}
cout << endl;
for (stolbec = 0; stolbec < stolbcy; stolbec++)
{
cout << "+";
for (i = 0; i < shirina + 2; i++)
{
cout << "-";
}
}
cout << "+" << endl;
}
}
// Заполнение двумерного масива рандомам
void Zapolnenie_dvymernogo_masiva(int masiv[ZAGLYSHKA][ZAGLYSHKA], int stroki, int stolbcy)
{
srand(time(NULL));
int a, b;
cout << "Введите начало рандома: "; cin >> a;
cout << "Введите конец рандома: "; cin >> b;
for (int stroka = 0; stroka < stroki; stroka++)
{
for ( int stolbec = 0; stolbec < stolbcy; stolbec++)
{
masiv[stroka][stolbec] = a + rand() % (b - a + 1);
}
}
}