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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kollmykov
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
#1

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

05.05.2014, 09:47. Просмотров 1061. Ответов 2
Метки нет (Все метки)

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

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

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

Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран монитора. Добавить строку в начало матрицы - C++
Помогите на завтра сделать лабу 2.Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран...

Добавить новую строку в двумерный динамический массив - C++
Написал функцию добавления новой строки, но когда после этого хочу напечатать функций Print, программа падает... Количество строк я...

Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) - C++
Подскажите, что делаю не так. Задание такое: Дана матрица A(n,m). Получить векторный столбец, элементы которого являются наименьшим по...

Добавить К столбцов в начало матрицы - C++
Нужно добавить К столбцов в начало матрицы, я сделала сам вывод матрицы но не знаю как сделать так что бы теперь добавлялся столбец. ...

Двумерный Динамический массив - C++
Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию передются их размеры , но они не константы и...

Двумерный динамический массив - C++
Необходимо ввести с клавиатуры количество строк и столбцов массива(матрица размером N*M), ввести исходные данные. Удалить столбец матрицы,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
__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) вывести на экран заполненную новую матрицу.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2014, 11:49
Привет! Вот еще темы с ответами:

Двумерный динамический массив - C++
Выскакивает ошибка Ошибка C2440 =: невозможно преобразовать &quot;int *&quot; в &quot;int **&quot; ConsoleApplication5 Из-за этого не выполняются...

Динамический двумерный массив - C++
Если число находится в интервале от 100 до 110, то используя подпрограмму, в матрицах Р(N,M), Q(N1,M1) и R(N2,M2) найти и отпечатать L -...

Двумерный динамический массив - C++
Здравствуйте, задание такое: &quot;Описать двумерный массив R целых чисел, размерностью NхM элементов, заполнять массив случайными числами по...

Двумерный динамический массив - C++
Здравствуйте, подскажите пожалуйста где ошибка? реализовал 2 фукнции ввода и вывода массива. #include &lt;iostream&gt; #include &lt;windows.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru