0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
1

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

09.10.2008, 15:26. Показов 20371. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2008, 15:26
Ответы с готовыми решениями:

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

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

Создание динамического массива
объясните пожалуйста вот эту часть // sozdanie dinamicheskogo massiva m*n a=(int**)malloc(m*sizeof(int *)); for(i=0;i&lt;m;i++) { ...

34
 Аватар для ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 17:45 2
Хорошие русские надписи и коменты... я непонял где и какой массив тебе надо создавать динамически...
Code
1
2
3
4
5
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
Code
1
int *n = (int*)malloc(sizeof(int)*N);
Вот тебе и массив целых. Что-нибудь еще?
0
 Аватар для ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:14 7
Вот код, если небудет работать разкоментируй инклуды....
Вложения
Тип файла: rar Unit1.rar (738 байт, 135 просмотров)
0
 Аватар для 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
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
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...
Вложения
Тип файла: rar Unit1.rar (206.0 Кб, 29 просмотров)
1
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
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 секунды
правда я не знаю в визуал таково
Code
1
#pragma hdrstop
кинь ето в комменты и напиши что то другое, которое VS 6 спримет))
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 20:08  [ТС] 20
Tengel кинь ехе плызз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2008, 20:08
Помогаю со студенческими работами здесь

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

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

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

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

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


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

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

Новые блоги и статьи
Введение в Dapr для разработчиков .NET
UnmanagedCoder 18.03.2025
Разработка распределенных систем никогда не была настолько востребованной и одновременно такой сложной. Если вы . NET разработчик, то наверняка сталкивались с необходимостью жонглировать обнаружением. . .
Собеседование по Spring Boot: продвинутые вопросы и ответы
Javaican 18.03.2025
Собеседования на позиции старших разработчиков и архитекторов требуют глубокого понимания внутренних механизмов Spring Boot, нюансов конфигурирования, подходов к оптимизации и построению сложных. . .
Перечисления в TypeScript: использование и лучшие практики
run.dev 18.03.2025
Пишете код и устали от разбросанных по проекту "волшебных" строк и чисел? Знакомая ситуация: где-то в глубине кода притаилась строка "ADMIN", а в другом месте используется "admin". И вот уже. . .
Фишки Kotlin, которые все любят
Javaican 18.03.2025
Помню, как скептически относился к появлению "ещё одного языка для JVM" — мол, зачем нам что-то новое, когда есть Java? Но первый же проект на Kotlin заставил меня пересмотреть свое мнение. Код стал. . .
Списки и кортежи в Python: различия, особенности, применение
py-thonny 18.03.2025
Если вы когда-нибудь писали код на Python, то наверняка сталкивались с конструкциями вида или ('имя', 25, 'инженер'). Это и есть списки и кортежи — последовательности, хранящие упорядоченные наборы. . .
Интеграция JavaScript в Haskell
golander 18.03.2025
Ключевая особенность нового JS-бэкенда GHC — возможность создавать колбэки из JavaScript в Haskell-код. Это открывает дорогу разработке полноценных браузерных приложений, позволяя реагировать на. . .
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru