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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 153, средняя оценка - 4.90
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
#1

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

09.10.2008, 15:26. Просмотров 18721. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание динамического массива (C++):

Создание динамического массива - C++
const int Num=5; const int SIZE=4096 * Num; SHORT Buf; как такое заменить, если Num- инициализируется при загрузке программы,...

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

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

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

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

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

34
ABTOP
36 / 36 / 2
Регистрация: 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
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
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
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
09.10.2008, 19:11 #6
Код
int *n = (int*)malloc(sizeof(int)*N);
Вот тебе и массив целых. Что-нибудь еще?
0
ABTOP
36 / 36 / 2
Регистрация: 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 / 2
Регистрация: 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
09.10.2008, 19:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2008, 19:56
Привет! Вот еще темы с ответами:

Создание динамического массива - C++
Ребята подскажите пожалуйста не давно начал изучать С++ ,решил добавить еще один язык для себя помимо Delphi, и вот вопрос как объявить...

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

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

Создание динамического двумерного массива - C++
void CreateArray(double **DynamicArray, int n){ //??? double **DynamicArray = new double* ; for (int Count = 0; Count &lt; 2*n;...


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

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

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