Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 14.03.2014
Сообщений: 24
1

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

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

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

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

Добавлено через 9 часов 17 минут
Up.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2014, 09:47
Ответы с готовыми решениями:

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

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

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

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

2
25 / 25 / 12
Регистрация: 04.01.2014
Сообщений: 91
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
3657 / 2845 / 781
Регистрация: 25.03.2012
Сообщений: 10,439
Записей в блоге: 1
12.05.2014, 11:49 3
Лучший ответ Сообщение было отмечено kollmykov как решение

Решение

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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2014, 11:49

Двумерный динамический массив
Выскакивает ошибка Ошибка C2440 =: невозможно преобразовать &quot;int *&quot; в &quot;int...

Динамический двумерный массив
Здравствуйте, начал недавно учить с++, смотрю видеоуроки. Дошел до этой темы и столкнулся с...

Динамический двумерный массив
Если число находится в интервале от 100 до 110, то используя подпрограмму, в матрицах Р(N,M),...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru