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

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

Восстановить пароль Регистрация
 
temik94
0 / 0 / 0
Регистрация: 30.10.2013
Сообщений: 11
22.11.2013, 00:25     Нужно изменить двумерные массивы на динамические #1
Добрый вечер. Не помешала бы ваша помощь,в моей лабе,нужно заменить двумерные массивы на динамические. К сожалению,я не знаю как это сделать.
*Задание: В матрице определить номер строки,в которой находится самая длинная серия одинаковых элементов.
**Еще условие,что строки двумерного массива могут иметь различную длину.
***С программой я намудрил,но там все должно быть понятно.

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;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 00:25     Нужно изменить двумерные массивы на динамические
Посмотрите здесь:

Указатели. Динамические двумерные массивы. C++
C++ Динамические двумерные массивы
C++ Динамические двумерные массивы
C++ Двумерные динамические массивы
C++ реферат на тему динамические и двумерные массивы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.11.2013, 00:29     Нужно изменить двумерные массивы на динамические #2
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;
или вроде как то по другому, я не уверен, что вот так сразу вся память освободится
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.11.2013, 00:56     Нужно изменить двумерные массивы на динамические #3
Еще условие,что строки двумерного массива могут иметь различную длину ????
Цитата Сообщение от Folko Посмотреть сообщение
И в конце программы очистите память
delete []a;
или вроде как то по другому, я не уверен, что вот так сразу вся память освободится
А зачем советовать , если не уверены?
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.11.2013, 02:07     Нужно изменить двумерные массивы на динамические #4
vua72, очищать память надо, потому и советую. Человек прочитает, подумает, погуглит и найдет подходящий код для этого. Если бы я не сказал, то он скорее всего даже и не задумался бы про очистку. Я понятно излагаю?
Про разную длину строк, заводите массив целых чисел, там храните длину каждой строки, само собой и создавать строки в матрице не обязательно одного размера.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
22.11.2013, 02:17     Нужно изменить двумерные массивы на динамические #5

Не по теме:

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



Про длину строк я у ТС спросил, что он имеет в виду, а не у вас.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.11.2013, 02:34     Нужно изменить двумерные массивы на динамические #6
Цитата Сообщение от Folko Посмотреть сообщение
delete []a;
или вроде как то по другому
C++
1
2
3
for (int i = 0; i < n; i++)
   delete [] a[i];
delete [] a;
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.11.2013, 03:20     Нужно изменить двумерные массивы на динамические #7
vua72,

Не по теме:

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



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

Не по теме:

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

Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
22.11.2013, 03:37     Нужно изменить двумерные массивы на динамические #9
alsav22,

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 10:56     Нужно изменить двумерные массивы на динамические
Еще ссылки по теме:

C++ динамические двумерные массивы
Динамические двумерные и одномерные массивы C++
C++ Двумерные динамические массивы

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

Или воспользуйтесь поиском по форуму:
vua72
22.11.2013, 10:56     Нужно изменить двумерные массивы на динамические
  #10

Не по теме:

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

Yandex
Объявления
22.11.2013, 10:56     Нужно изменить двумерные массивы на динамические
Ответ Создать тему
Опции темы

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