Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 11

Нужно изменить двумерные массивы на динамические

22.11.2013, 00:25. Показов 981. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Не помешала бы ваша помощь,в моей лабе,нужно заменить двумерные массивы на динамические. К сожалению,я не знаю как это сделать.
*Задание: В матрице определить номер строки,в которой находится самая длинная серия одинаковых элементов.
**Еще условие,что строки двумерного массива могут иметь различную длину.
***С программой я намудрил,но там все должно быть понятно.

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream.h> 
#include <math.h>
# define nu 100
# define mu 50
void main ()
{
    int i,j,n,m,k,mas[nu][mu],st[nu][3],maxdl, maxdlz, nst;
M1: cout<<"vvedite kol-vo strok"<<endl;
    cin>>n;
    cout<<"vvedem kol-vo stolbcov"<<endl;
    cin>>m;
        if((m>mu)||(n>nu))
        {       cout<<"nepravelno vvedeni parametri matrici"<<endl;
               goto M1;
        }
        else
        {
 
                cout<<"vvedem matricu"<<endl;
                for(i=0; i<n; i++)
                { 
            
                    cout<<"vvodim "<<i+1<<" stroku"<<endl;
                    for(j=0;j<m; j++)
                    {
                        cin>>mas[i][j];
                    }
                }
 
 
 
 
            //  cout<<"vivedem matricu"<<endl;
             // for(i=0; i<n; i++)
            //  { 
            
                    
             //     for(j=0;j<m; j++)
            //      {
            //          cout<<mas[i][j];
            //      }
            //      cout<<endl;
            //  }
            
 
 
 
 
 
 
 
 
 
 
 
 
 
                k=0;
                for (i=0;i<n;i++)
                {
                st[k][0]=0;
                for ( j = 0; j < m; j++)
                {
                                                              //  cout<<" mas pov "<<mas[i][j];
                  //  if((j+1)>m)
                    //{
                    //  
                    //  goto M99;
                    //}
                //  else
                //  {
                        
                    if (mas[i][j]==mas[i][j+1])
                    {
                                                           //   cout<<"vo"<<endl;
                        
                    st[k][0]=st[k][0]+1;
                    st[k][1]=mas[i][j];
                    st[k][2]=i;
                    }
                    else
                    {
                                                     //      cout<<"     st["<<k<<"][0]="<<st[k][0];
                                                    //     cout<<"     st["<<k<<"][1]="<<st[k][1];
                                                    //     cout<<"     st["<<k<<"][2]="<<st[k][2]<<endl;
                        k=k+1;
                        st[k][0]=0;
                    }
                //  }
 
 
                }
                                                         //   cout<<endl;
                }
 
 
 
 
//cout<<endl<<endl;
//              for(i=0;i<k;i++)
//              {
//                  cout<<st[i][0]<<" "<<st[i][1]<<" "<<st[i][2]<<endl;
//              }
//cout<<endl<<endl;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2013, 00:25
Ответы с готовыми решениями:

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

Двумерные динамические массивы заполняются неверно
Помогите найти ошибку в коде, массив правильно не заполняется. void vvod(double *a, double *b, int n) { int i; cout &lt;&lt;...

Нужен реферат на тему динамические и двумерные массивы
извиняюсь если тему не там создал,вообщем задали реферат на тему динамические и двумерные массивы на один лист, в сети нечего не нашел,и...

9
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
22.11.2013, 00:29
temik94, не всматривался в код, двумерный динамический массив создается
C++
1
2
3
int** a = new int*[n];
for (int i = 0; i < n; i++)
a[i] = new int[m];
создали матрицу NxM
Дальше с ней работаете точно так же, как и с обычным двумерным массивом. И в конце программы очистите память
delete []a;
или вроде как то по другому, я не уверен, что вот так сразу вся память освободится
1
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
22.11.2013, 00:56
Еще условие,что строки двумерного массива могут иметь различную длину ????
Цитата Сообщение от Folko Посмотреть сообщение
И в конце программы очистите память
delete []a;
или вроде как то по другому, я не уверен, что вот так сразу вся память освободится
А зачем советовать , если не уверены?
0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
22.11.2013, 02:07
vua72, очищать память надо, потому и советую. Человек прочитает, подумает, погуглит и найдет подходящий код для этого. Если бы я не сказал, то он скорее всего даже и не задумался бы про очистку. Я понятно излагаю?
Про разную длину строк, заводите массив целых чисел, там храните длину каждой строки, само собой и создавать строки в матрице не обязательно одного размера.
1
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
22.11.2013, 02:17

Не по теме:

Цитата Сообщение от Folko Посмотреть сообщение
vua72, Я понятно излагаю?
Если даете совет, то нужно давать совет по делу. Особенно читая
Цитата Сообщение от Folko Посмотреть сообщение
Помогаю студентам и школьникам с несложными задачами на С++/Pascal за чисто символическую плату.



Про длину строк я у ТС спросил, что он имеет в виду, а не у вас.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2013, 02:34
Цитата Сообщение от Folko Посмотреть сообщение
delete []a;
или вроде как то по другому
C++
1
2
3
for (int i = 0; i < n; i++)
   delete [] a[i];
delete [] a;
2
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
22.11.2013, 03:20
vua72,

Не по теме:

Мне не хочется начинать спор, поэтому я притворюсь, что не заметил ваших попыток прицепиться к моим словам



Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
for (int i = 0; i < n; i++)
   delete [] a[i];
delete [] a;
Да, в своих программах я очищаю также, просто как то на форуме увидел, что уже достаточно "прокачанный" пользователь форума в коде прописал просто delete []a; для очистки двумерного массива. После чего вкрались небольшие сомнения
0
22.11.2013, 03:30

Не по теме:

Цитата Сообщение от Folko Посмотреть сообщение
Да, в своих программах я очищаю также, просто как то на форуме увидел, что уже достаточно "прокачанный" пользователь форума в коде прописал просто delete []a; для очистки двумерного массива. После чего вкрались небольшие сомнения
Гед и что он прописал нужно видеть(может там что-то по другому было), но, вообще, ошибаться все могут

0
 Аватар для Folko
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
22.11.2013, 03:37
alsav22,

Не по теме:

не спорю. Может он опечатался, может я ошибся:)всякое бывает

0
22.11.2013, 10:56

Не по теме:

alsav22,
может неизвестный продвинутый форумчанин вторым способом задавал динамический массив, потому так и удалил.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2013, 10:56
Помогаю со студенческими работами здесь

Двумерные динамические массивы-матрицы (выделение памяти)
Помогите пожалуйста,разобраться. В динамической памяти сначала выделяется память для указателей на соответствующие двумерные массивы(строки...

Двумерные динамические массивы, представленные одномерными массивами
Как организовать выделение и освобождение памяти в виде подпрограмм в двумерном массиве? Т. е. чтобы операторы new double и delete...

Динамические двумерные массивы через указатели. Как это происходит?
Вот типичная идентификация двумерного массива (NxM): int** mass = new int*; for(i=0; i&lt;N; i++) mass = new int; Помогите...

Динамические двумерные массивы. Определить суму положительных элементов, которые находятся выше главной диагонали...
Ввести матрицу размером NxM. Память для массива выделить динамически.Определить суму положительных элементов, которые находятся выше ...

Двумерные массивы..( Оч нужно )
Тема: Двумерные массивы..................( ( С++ Borland ) ) 1 ) Найти два максимальных элемента в последний строке массива А. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru