Загрузка данных


#include <iostream>
#include <iomanip>
using namespace std;

const int STROKI = 3;   // сколько строк в массиве
const int STOLBCY = 4;  // сколько столбцов в массиве

// красивый вывод двумерного массива, всё считается внутри
void pipicka(int masiv[STROKI][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;
    }
}

int main()
{
    int masiv[STROKI][STOLBCY] = {
        {1, 2, 3, 4},
        {10, -5, 100, 7},
        {8, 9, 0, 11}
    };

    pipicka(masiv);
}