Форум программистов, компьютерный форум CyberForum.ru

Двумерный динамический массив: добавить К столбцов в начало - C++

Восстановить пароль Регистрация
 
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
05.05.2014, 09:47     Двумерный динамический массив: добавить К столбцов в начало #1
1. Создайте двумерный динамический массив, имеющий m строк и n столбцов (m и n вводятся с клавиатуры). Элементами массива являются случайные целые числа от -10 до 10 включительно. Выведите значения элементов массива на экран. Напишите функцию, которая добавляет К столбцов в начало матрицы. Массив является параметром функции. Добавленные строки (столбцы) заполнять нулями.
Вызовите вашу функцию. Выведите значения элементов измененного массива на экран.

возможно ли такое сделать? если да - то как?
гуманитарий в замешательстве

Добавлено через 9 часов 17 минут
Up.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2014, 09:47     Двумерный динамический массив: добавить К столбцов в начало
Посмотрите здесь:

Двумерный динамический массив C++
Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) C++
C++ Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран монитора. Добавить строку в начало матрицы
динамический двумерный массив C++
Добавить К столбцов в начало матрицы C++
Динамический Двумерный массив C++
Двумерный динамический массив C++
C++ Треугольный динамический массив, увеличение столбцов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
__General__
24 / 24 / 3
Регистрация: 04.01.2014
Сообщений: 91
Завершенные тесты: 2
05.05.2014, 15:38     Двумерный динамический массив: добавить К столбцов в начало #2
kollmykov, А с чем конкретно проблемы? Непосредственно с добавлением столбцов в начало матрицы?
После того, как создан и заполнен исходный динамический массив m x n, нужно:
1) создать другой динамический массив m x (n+k) (то есть 2мерный массив из m строк и (n+k) столбцов).
2) заполнить первые k столбцов новой матрицы нулями.
3) cкопировать из исходной матрицы в новую остальные n столбцов.
4) вывести на экран заполненную новую матрицу.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
12.05.2014, 11:49     Двумерный динамический массив: добавить К столбцов в начало #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int** Alloc2d(int m, int n){
   int** data=new int*[m];
   for (int i=0; i<m; ++i)
      data[i]=new int[n];
  return data;
}
int** AddFront(int** matrix, int m, int n, int delta){
   int** data=new int*[m+delta];
   for (int i=0; i<m; ++i)
      data[i+delta]=matrix[i];
   for (int i=0; i<delta; ++i)
      data[i]=new int[n];
  return data;
}
Добавлено через 17 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
int** Alloc2d(int m, int n){
   int** data=new int*[m];
   for (int i=0; i<m; ++i)
      data[i]=new int[n];
  return data;
}
int** AddFront(int** matrix, int m, int n, int delta){
   int** data=new int*[m+delta];
   for (int i=m-1; i>=0; --i)
      data[i+delta]=matrix[i];
   for (int i=0; i<delta; ++i)
      data[i]=new int[n];
  return data;
}
void Free2d(int** matrix, int m, int n){
   for (int i=0; i<m; ++i)
      delete[] data[i];
   delete[] data;
}
int main(){
  int width, height;
  std::cout<<"Input width/height: ";
  std::cin>>width>>height;
  int** array=Alloc2d(width, height);
  srand(time(0));
  for (int i=0; i<height; ++i){
    for (int j=0; j<width; ++j)
      std::cout<<(array[j][i]=rand()%100-50)<<" ";
    std::cout<<std::endl;
  }
  int delta;
  std::cout<<"Input delta: ";
  std::cin>>delta;
  array=AddFront(array, width, height, delta);
  for (int i=0; i<height; ++i)
    for (int j=0; j<delta; ++j)
      array[j][i]=rand()%100-50;
  width+=delta;
  std::cout<<"extended array: "<<std::endl;
  for (int i=0; i<height; ++i){
    for (int j=0; j<width; ++j)
      std::cout<<(array[j][i])<<" ";
    std::cout<<std::endl;
  }
  Free2d(array, width, height); 
  return 0;
}
Yandex
Объявления
12.05.2014, 11:49     Двумерный динамический массив: добавить К столбцов в начало
Ответ Создать тему
Опции темы

Текущее время: 15:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru