С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.66/110: Рейтинг темы: голосов - 110, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
1

Создание динамического массива

09.10.2008, 15:26. Показов 20340. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,ребят кто может подсказать как пределать код? что б массивы создавались динамически, ну там писалось введите кол элемнтов стороки, введите кол элементов столбца,
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
#pragma argsused
int main(int argc, char* argv[])
{
        int a;
        int Bufer;
        //ñîçäàåì ìàòðèöó è çàïîëíÿåì åå çíà÷åíèÿìè
        int Matr[4][3] = {1,5,6,2,3,4,2,5,9,23,43,23};
        int VrSt[4];
        int VrStr[3];
        //Âûâîäèì
        cout<<"Èñõîäíàÿ ìàòðèöà\n";
        for(int i=0; i<4 ; i++)
        {
                for(int j=0; j<3; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        cout<<"ñäâèãàòü âíèç=1 èëè âïðàâî=0 ?";
        cin>>a;
        cout<<"íà ñêîëüêî ïîçèöèé?";
        int n;
        cin>>n;
        if (a==1)
        {
         for (int i=0; i<n; i++) //ñêîëüêî ðàç ñäâèãàòü
         {
                for(int j=0; j<3; j++)     //ñäâèãàòü êàæäûé ñòîëáåö
                {
                        for(int k=0; k<3; k++)
                        {
                           VrSt[k+1] = Matr[k][j];
                        };
                        VrSt[0]=Matr[3][j];
                        for(int k=0; k<4; k++)
                        {
                           Matr[k][j]=VrSt[k];
                        };
                };
 
         };
        }
        else
        {
        for (int i=0; i<n; i++) //ñêîëüêî ðàç ñäâèãàòü
         {
                for(int j=0; j<4; j++)     //ñäâèãàòü êàæäóþ ñòðîêó
                {
                        for(int k=0; k<2; k++)
                        {
                           VrStr[k+1] = Matr[j][k];
                        };
                        VrSt[0]=Matr[j][2];
                        for(int k=0; k<3; k++)
                        {
                           Matr[j][k]=VrSt[k];
                        };
                };
 
         };
        }
        //âûâîä
        for(int i=0; i<4 ; i++)
        {
                for(int j=0; j<3; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        cin>>a;
        return 0;
}
//---------------------------------------------------------------------------
вот такой вот код, кто подскажет как изменить его
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2008, 15:26
Ответы с готовыми решениями:

Создание динамического массива
Объявите указатель на массив типа double и предложите пользователю выбрать его размер. Далее...

Создание динамического массива
Добрый день! Хочу выделить память под массив, только после того как буду знать его длину. Длину...

Создание динамического массива
объясните пожалуйста вот эту часть // sozdanie dinamicheskogo massiva m*n...

Создание динамического массива
Как создать динамически массив размера n если n вводиться с клавиатуры. А еще и двумерный cin&gt;&gt;n...

34
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 17:45 2
Хорошие русские надписи и коменты... я непонял где и какой массив тебе надо создавать динамически...
Код
int n, m;
      scanf("%d %d", &n, &m);
      int **a = new int*[n];
      for (int i=0; i<n; i++)
            a[i]=new int[m];
это динамическое создание 2х мерного массива, а ешё почитай вот это
http://www.sql.ru/forum/actual... tid=488621
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 18:03  [ТС] 3
ой, извините хм непонятно почему оно кривое а ты не мог бы подсказать куда это в код вставить?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int Matr[4][3] = {1,5,6,2,3,4,2,5,9,23,43,23};
        int VrSt[4];
        int VrStr[3];
        //Âûâîäèì
        cout<<"Èñõîäíàÿ ìàòðèöà\n";
        for(int i=0; i<4 ; i++)
        {
                for(int j=0; j<3; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
вот здесь начальный массив создается но он статический как заменить на тот что вы написали ? вот срр файл, если не трудно посмотрите пожалуйста
Вложения
Тип файла: rar Unit1.rar (653 байт, 63 просмотров)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.10.2008, 18:29 4
Или new, или malloc использовать. Способов много.
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 18:58  [ТС] 5
хнык кто нибудь поможет?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.10.2008, 19:11 6
Код
int *n = (int*)malloc(sizeof(int)*N);
Вот тебе и массив целых. Что-нибудь еще?
0
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:14 7
Вот код, если небудет работать разкоментируй инклуды....
Вложения
Тип файла: rar Unit1.rar (738 байт, 135 просмотров)
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:30 8
попробуй так зделать
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
pragma argsused
int main(int argc, char* argv[])
{
        int a,m,n;
        int Bufer;
        int** Matr;
        //m - количество рядков матрицы
        //n - количество столбцов матрицы
        cout << "Введите  m i n\n";
        cin >> m;
        cin >> n;
        Matr = new int* [m];
        for( int i = 0; i < m; i++)
            Matr[i] = new int [n];
         //ввод массива
        cout<<"введите массив:\n";
    for(int i=0;i<m;++i)
        for(int j=0;j<n;++j)
        {
            cout << "a["<<i+1<<"]["<<j+1<<"] = ";
            cin >> Matr[i][j];
        }
        //Вывод
        cout<<"Èñõîäíàÿ ìàòðèöà\n";
        for(int i=0; i<m ; i++)
        {
                for(int j=0; j<n; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        cout<<"ñäâèãàòü âíèç=1 èëè âïðàâî=0 ?";
        cin>>a;
Добавлено через 6 минут 1 секунду
ну а дальше твоя часть программы,каторую ты уже написал.если ета часть будет работать))))

Добавлено через 1 минуту 41 секунду
ну и вывод:
C++
1
2
3
4
5
6
7
8
9
10
11
//вывод
        for(int i=0; i<m ; i++)
        {
                for(int j=0; j<n; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        cin>>a;
        return 0;
1
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:34  [ТС] 9
Tengel, ты б немог б это в общем виде представить а то запуталась или ехе шник кинуть,Автор твоя прога запускается и сразу исчезает ( иль тоже ехе плизик
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:46 10
щас, ато я сам уже запутался%)

Добавлено через 1 минуту 20 секунд
я не учёл еще етих двух массивов((одномерных
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:47  [ТС] 11
Tengel, пасибки, жду) ABTOP надеюсь и на втою помощь код вроде правильный а серавно прога тупо незапускается
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:50 12
ты в Visual Studio компиллируеш?если да, то какой?
0
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:51 13
Вот с exe...
Вложения
Тип файла: rar Unit1.rar (206.0 Кб, 29 просмотров)
1
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:53  [ТС] 14
Tengel неа компилю Борлад С++ жду твоего варианта ))
ABTOP пасибки)))
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:56 15
я немножко воспользовался программой АВТОРаювот вообщем вроди так:
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
//#include <clx.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
//#pragma argsused
int main(int argc, char* argv[])
{
        int a, i, j ,k, N, M;
        int Bufer;
        //создаем матрицу и заполняем ее значениями
        cout<<"Введите размер: ";
        cin>>N>>M;
        int **Matr=new int*[N], *VrSt=new int[N], *VrStr=new int[M];
        for (i=0; i<N; i++)
            Matr[i]=new int[M]; 
        //Вводим
        for (i=0; i<N; i++)
            for (j=0; j<M; j++)
            {
                cout<<"Ввкдите элемент "<<i<<" "<<j<<": ";
                cin>>Matr[i][j];
            }
        //Выводим
        cout<<"Исходная матрица\n";
        for(i=0; i<N ; i++)
        {
                for(j=0; j<M; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        cout<<"сдвигать вниз=1 или вправо=0 ?";
        cin>>a;
        cout<<"на сколько позиций?";
        int n;
        cin>>n;
        if (a==1)
        {
         for (i=0; i<n; i++) //сколько раз сдвигать
         {
                for(j=0; j<M; j++)     //сдвигать каждый столбец
                {
                        for(k=0; k<M; k++)
                        {
                           VrSt[k+1] = Matr[k][j];
                        };
                        VrSt[0]=Matr[M][j];
                        for(k=0; k<N; k++)
                        {
                           Matr[k][j]=VrSt[k];
                        };
                };
 
         };
        }
        else
        {
        for (i=0; i<n; i++) //сколько раз сдвигать
         {
                for(j=0; j<N; j++)     //сдвигать каждую строку
                {
                        for(k=0; k<2; k++)
                        {
                           VrStr[k+1] = Matr[j][k];
                        };
                        VrSt[0]=Matr[j][2];
                        for(k=0; k<M; k++)
                        {
                           Matr[j][k]=VrSt[k];
                        };
                };
 
         };
        }
        //вывод
        for(i=0; i<N ; i++)
        {
                for(j=0; j<M; j++)
                {
                cout<<Matr[i][j]<<"\t";
                };
                cout<<"\n";
        };
        system("pause");
        return 0;
}
Добавлено через 2 минуты 16 секунд
ааа, понятно я!я пишу в Visual Studio 2008 и не знаю пойден ли прога на болранд.с АВТОРом навеное такая же проблема
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:59  [ТС] 16
та вижуал есть)) токо крека на него нет Tengel скинь плыз ехе
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:00 17
а я то не мог понять, что ты такое подключаеш(библиотеки) в программе)))))тебе ее полюбе нужно дороботать под свою среду))
0
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 20:00 18
да у меня VS 6 вот и коментирую инклуды и прагмы что бы у меня работало...
0
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:03 19
еслт ты знаеш визуал хорошо как и борланд, или наоборот, то тебе не трудно будет переделать прогу с одной среды на другую

Добавлено через 1 минуту 54 секунды
правда я не знаю в визуал таково
Код
#pragma hdrstop
кинь ето в комменты и напиши что то другое, которое VS 6 спримет))
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 20:08  [ТС] 20
Tengel кинь ехе плызз
0
09.10.2008, 20:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2008, 20:08
Помогаю со студенческими работами здесь

Создание динамического массива
Хотел написать программу, чтобы пользователь мог задать количество элементов в одномерном массиве,...

Создание динамического массива
Как ввести самому количество элементов массива,а не задавать константно ?

Создание динамического массива
Как объявить вот так вот : int blocks = { {0,0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0}}; Мне...

Создание динамического массива
Добрый вечер! Подскажите пожалуйста, что необходимо сделать, чтобы заменить статический массив...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru