Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int ** creat(int &n, int &m)
- {
- cout << "n="; cin >> n; cout << "m="; cin >> m;
- int **mas = new int *[2 * n]; //определяем максимальное количество стр ок
- for (int i = 0; i<n; ++i) mas[i] = new int[m];
- for (int i = 0; i<n; ++i)
- for (int j = 0; j<m; ++j){ cout<<"m as["<<i<<"]["<<j<<"]="; cin>>mas[i][j]; }
- return mas;
- }
- void print(int **mas, int n, int m)
- {
- for (int i = 0; i<n; i++, cout<<endl)
- for (int j = 0; j<m; j++) cout << mas[i][j]<<"\t";
- }
- void deleteMas(int **mas, int n)
- {
- for (int i = 0; i<n; i++) delete[] mas[i];
- delete[] mas;
- }
- int main()
- {
- int n, m, k,c;
- int **a = creat(n, m); //создаем и заполняем матрицу а
- int n2 = 2 * n; //п- текущее количество строк, п2 -максимально возможное
- print(a, n, m); //выводим первоначальный массив
- cout << "Enter c" << endl; cin >> c;
- cout<<"k = "; cin>>k; //вводим номер строки для добавления
- if (k<0 || k>n - 1 || n + 1>n2) cout<<"error";
- else {
- for (int i = n; i>k; -i) a[i] = a[i - 1]; //выполняем сдвиг строк
- ++n; //увеличиваем текущее количество строк в массиве
- a[k] = new int[m]; //выделяем память под новую строку массива и заполняем ее
- for (int j = 0; j<m; ++j) { cout <<"a[" << k << ")[" << j << "]="; cin>>a[k][j]; }
- print(a, n, m);
- } //выводим измененный массив
- deleteMas(a, n);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment