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

В чем ошибка программы? ? с++. Выводит матрицу не полностью

Выводит матрицу не полностью, нужно сгенерировать массив двухмерный, потом заменить один из столбиков и вывести на экран.. . Но при выводе, последний столбик появляется многозначным чилом каким то непонятным.. . В чем проблема понять не могу.. . Подскажите?? ?
С уважением!
#include <ctime>
#include <cstdlib>
#include <clocale>
#include <iomanip>
#include <iostream>

using namespace std;

int main() {
    setlocale(LC_ALL, "");
    srand((unsigned)time(0));
    int n, m, f, r, c;
    cout << "строки? ";
    cin >> n;
    cout << "столбцы? ";
    cin >> m;
    int **mas = new int* [n];
    cout << "массив: \n";
    for (r = 0; r < n; r++) {
        mas[r] = new int[m];
        for (int c = 0; c < m; c++) cout << (mas[r][c] = rand() % 9 + 1) << ' ';
        cout << endl;
    }
    cout<<"номер добавляемого столбца? ";
    cin >> f;
    --f; ++m;
    for (r = 0; r < n; ++r) {
        int *row = new int[m], *tmp = mas[r];
        for (c = 0; c < f; ++c) row[c] = mas[r][c];
        row[c++] = rand() % 9 + 1;
        for (; c < m; ++c) row[c] = mas[r][c - 1];
        mas[r] = row;
        delete[] tmp;
    }
    cout << "результат: \n";
    for (r = 0; r < n; ++r) {
        for (c = 0; c < m; ++c) cout << mas[r][c] << ' ';
        cout << endl;
        delete[] mas[r];
    }
    delete[] mas;
    system("pause");
    return 0;
}
Евгений Колесник
Евгений Колесник
95 405
Лучший ответ

Похожие вопросы