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

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

09.10.2008, 15:26. Показов 20834. Ответов 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
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
Хорошие русские надписи и коменты... я непонял где и какой массив тебе надо создавать динамически...
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  [ТС]
ой, извините хм непонятно почему оно кривое а ты не мог бы подсказать куда это в код вставить?
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
Или new, или malloc использовать. Способов много.
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 18:58  [ТС]
хнык кто нибудь поможет?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
09.10.2008, 19:11
Code
1
int *n = (int*)malloc(sizeof(int)*N);
Вот тебе и массив целых. Что-нибудь еще?
0
 Аватар для ABTOP
36 / 36 / 4
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 19:14
Вот код, если небудет работать разкоментируй инклуды....
Вложения
Тип файла: rar Unit1.rar (738 байт, 135 просмотров)
0
 Аватар для Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:30
попробуй так зделать
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  [ТС]
Tengel, ты б немог б это в общем виде представить а то запуталась или ехе шник кинуть,Автор твоя прога запускается и сразу исчезает ( иль тоже ехе плизик
0
 Аватар для Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 19:46
щас, ато я сам уже запутался%)

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

Добавлено через 1 минуту 54 секунды
правда я не знаю в визуал таково
Code
1
#pragma hdrstop
кинь ето в комменты и напиши что то другое, которое VS 6 спримет))
0
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 20:08  [ТС]
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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru