Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/105: Рейтинг темы: голосов - 105, средняя оценка - 4.67
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
1

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

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

Здравствуйте,ребят кто может подсказать как пределать код? что б массивы создавались динамически, ну там писалось введите кол элемнтов стороки, введите кол элементов столбца,
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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2008, 15:26
Ответы с готовыми решениями:

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

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

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

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

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

34
ABTOP
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/actualthread.aspx?tid=488621
0
Alinka
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";
        };
вот здесь начальный массив создается но он статический как заменить на тот что вы написали ? вот срр файл, если не трудно посмотрите пожалуйста
0
Вложения
Тип файла: rar Unit1.rar (653 байт, 62 просмотров)
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
09.10.2008, 18:29 4
Или new, или malloc использовать. Способов много.
0
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 18:58  [ТС] 5
хнык кто нибудь поможет?
0
Vourhey
Почетный модератор
6493 / 2268 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
09.10.2008, 19:11 6
Код
int *n = (int*)malloc(sizeof(int)*N);
Вот тебе и массив целых. Что-нибудь еще?
0
ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:14 7
Вот код, если небудет работать разкоментируй инклуды....
0
Вложения
Тип файла: rar Unit1.rar (738 байт, 134 просмотров)
Tengel
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
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:34  [ТС] 9
Tengel, ты б немог б это в общем виде представить а то запуталась или ехе шник кинуть,Автор твоя прога запускается и сразу исчезает ( иль тоже ехе плизик
0
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:46 10
щас, ато я сам уже запутался%)

Добавлено через 1 минуту 20 секунд
я не учёл еще етих двух массивов((одномерных
0
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:47  [ТС] 11
Tengel, пасибки, жду) ABTOP надеюсь и на втою помощь код вроде правильный а серавно прога тупо незапускается
0
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:50 12
ты в Visual Studio компиллируеш?если да, то какой?
0
ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:51 13
Вот с exe...
1
Вложения
Тип файла: rar Unit1.rar (206.0 Кб, 28 просмотров)
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:53  [ТС] 14
Tengel неа компилю Борлад С++ жду твоего варианта ))
ABTOP пасибки)))
0
Tengel
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
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:59  [ТС] 16
та вижуал есть)) токо крека на него нет Tengel скинь плыз ехе
0
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:00 17
а я то не мог понять, что ты такое подключаеш(библиотеки) в программе)))))тебе ее полюбе нужно дороботать под свою среду))
0
ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 20:00 18
да у меня VS 6 вот и коментирую инклуды и прагмы что бы у меня работало...
0
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:03 19
еслт ты знаеш визуал хорошо как и борланд, или наоборот, то тебе не трудно будет переделать прогу с одной среды на другую

Добавлено через 1 минуту 54 секунды
правда я не знаю в визуал таково
Код
#pragma hdrstop
кинь ето в комменты и напиши что то другое, которое VS 6 спримет))
0
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 20:08  [ТС] 20
Tengel кинь ехе плызз
0
09.10.2008, 20:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2008, 20:08

Создание динамического массива
const int Num=5; const int SIZE=4096 * Num; SHORT Buf; как такое...

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

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


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

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

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