#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
void vivod_odnomernogo_masiva(int *masiv, int razmer);
void Zapolnenie_odnomernogo_masiva(int *masiv, int razmer);
int main()
{
int N_Razmer;
cout << "Введите размер массива: "; cin >> N_Razmer;
// создаём массив нужного размера
int *masiv = new int[N_Razmer];
Zapolnenie_odnomernogo_masiva(masiv, N_Razmer);
vivod_odnomernogo_masiva(masiv, N_Razmer);
// освобождаем память
delete[] masiv;
}
// красивый вывод одномерного массива, всё считается внутри
void vivod_odnomernogo_masiva(int *masiv, int razmer)
{
int element, i;
int shirina = 1;
int chislo, kol;
// ищем самое длинное число (минус тоже считается за символ)
for (element = 0; element < razmer; element++)
{
chislo = masiv[element];
kol = 0;
if (chislo <= 0)
{
kol = 1;
}
while (chislo != 0)
{
chislo = chislo / 10;
kol++;
}
if (kol > shirina)
{
shirina = kol;
}
}
// верхняя линия
for (element = 0; element < razmer; element++)
{
cout << "+";
for (i = 0; i < shirina + 2; i++)
{
cout << "-";
}
}
cout << "+" << endl;
// строка с числами
cout << "|";
for (element = 0; element < razmer; element++)
{
cout << " " << setw(shirina) << masiv[element] << " |";
}
cout << endl;
// нижняя линия
for (element = 0; element < razmer; element++)
{
cout << "+";
for (i = 0; i < shirina + 2; i++)
{
cout << "-";
}
}
cout << "+" << endl;
}
// Заполнение одномерного масива рандомам
void Zapolnenie_odnomernogo_masiva(int *masiv, int razmer)
{
srand(time(NULL));
int a, b;
cout << "Введите начало рандома: "; cin >> a;
cout << "Введите конец рандома: "; cin >> b;
for (int element = 0; element < razmer; element++)
{
masiv[element] = a + rand() % (b - a + 1);
}
}