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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 19:59  [ТС]     Создание динамического массива #16
та вижуал есть)) токо крека на него нет Tengel скинь плыз ехе
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:00     Создание динамического массива #17
а я то не мог понять, что ты такое подключаеш(библиотеки) в программе)))))тебе ее полюбе нужно дороботать под свою среду))
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
09.10.2008, 20:00     Создание динамического массива #18
да у меня VS 6 вот и коментирую инклуды и прагмы что бы у меня работало...
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:03     Создание динамического массива #19
еслт ты знаеш визуал хорошо как и борланд, или наоборот, то тебе не трудно будет переделать прогу с одной среды на другую

Добавлено через 1 минуту 54 секунды
правда я не знаю в визуал таково
Код
#pragma hdrstop
кинь ето в комменты и напиши что то другое, которое VS 6 спримет))
Alinka
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 8
09.10.2008, 20:08  [ТС]     Создание динамического массива #20
Tengel кинь ехе плызз
Tengel
2 / 2 / 0
Регистрация: 08.10.2008
Сообщений: 17
09.10.2008, 20:33     Создание динамического массива #21
я уже ево удалил
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
10.10.2008, 18:22     Создание динамического массива #22
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
#include<iostream>
#include<tima.h>
using namespace std;
int newAray(int**pa)//vvod razmera massiva
{
int size;
cout<<"size";
cin>>size;
if(size<=0)return 0;
*pa=new int[size];
if(*pa==0) return 0;
return size;
}
void fillArray(int*a,int size)//zapolnenie slu4ainimi 4islami
{
for(int i=0;i<size;i++)
{
a[i]=rand()%100;
cout<<a[i]<<'\n';
}
cout<<'\n';
}
void main()
{
int*a=0;
int size=newArray(&a);
fillArray(a,size);
delete[]a;
}
WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
10.10.2008, 20:47     Создание динамического массива #23
Программу писать не буду... но если хочеш создать динамический массив юзай оперцаю new
C++
1
2
3
4
5
6
7
8
9
10
11
void main()
{
     int size; cin>>size;
     int* mas=new int[size];
     for(int i=0;i<size;i++)
     {
          mas[i]=i+1;
          cout<<mas[i]<<'\t'
     }
cout<<'\n';
}
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
10.10.2008, 21:01     Создание динамического массива #24
Уговорил но то на проверку ввода меньше 0
WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
10.10.2008, 21:05     Создание динамического массива #25
Хмм... проблем нет... и проверку нате:
C++
1
2
3
4
5
6
7
8
9
10
11
void main()
{
     int size; do{cin>>size;}while(size<=0);
     int* mas=new int[size];
     for(int i=0;i<size;i++)
     {
          mas[i]=i+1;
          cout<<mas[i]<<'\t'
     }
cout<<'\n';
}
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
11.10.2008, 11:28     Создание динамического массива #26
Casper!
У меня есть несколько вопросов по этому коду. Ну про многочисленные синтаксические ошибки я уж не говорю. Во первых обратим внимание на тип, возвращаемый main:

ошибка: ‘::main’ must return ‘int’
что впрочем неудивительно - ни один вменяемый компилятор С++ не странслирует данную программу. Далее: господа - вы вообще книжки не читаете, как я понял да? Действуете наподобие слепого котёнка?
C++
1
2
*pa=new int[size];
if(*pa==0) return 0;
Зачем проверять значение, возвращаемое new? Или вас не учили, что при неудачной попытке выделить память new сгенерирует std::bad_alloc? Ааа... я кажется понял... что ж - продолжайте программировать в turbo C.. там такого, видимо, не наблюдается.. Далее: к чему этот цирк с указателями? С++ предоставляет механизм ссылок, в данном случае он будет как раз к месту. Или вас прёт через каждые три строчки проверять указатель на валидность?

P.S. Код в юмор.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
11.10.2008, 12:40     Создание динамического массива #27
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
#include<iostream>
#include<time.h>
using namespace std;
int newArray(int**pa)//vvod razmera massiva
{
intsize;
cout<<"size";
cin>>size;
if(size<=0)return 0;
 *pa=newint[size];
if(*pa==0) return 0;
returnsize;
 }
void fillArray(int*a,intsize)//zapolnenie slu4ainimi 4islami
{
for(inti=0;i<size;i++)
 {
a[i]=rand()%100;
cout<<a[i]<<'\n';
 }
cout<<'\n';
 }
void main()
 {
int*a=0;
intsize=newArray(&a);
fillArray(a,size);
delete[]a;
 }
у меня замечательно этот код работет
ты тыкаешь на ошибки компелятора ,а ты не пробывал просто исправить афографические 2 ошибки ???
WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
11.10.2008, 15:55     Создание динамического массива #28
Цитата Сообщение от igor_nf Посмотреть сообщение
Во первых обратим внимание на тип, возвращаемый main:
Ключевое слово void явно указывает что main() не возвращает никакх значений!

Цитата Сообщение от igor_nf Посмотреть сообщение
Сообщение от C++ compiler
ошибка: ‘::main’ must return ‘int’
Ты с С++ Компилером на прямую общаешся? Научиш? 0_о
Да, кстати, сам работаю в среде Visual Studio 2008 и у меня все прекрасно работает... Ну пара ошибок, без ошибок не делается программа!
Цитата Сообщение от igor_nf Посмотреть сообщение
Или вас не учили, что при неудачной попытке выделить память new сгенерирует std::bad_alloc?
Если у операции new какимто макаром НЕ ПОЛУЧАЕТСЯ выделть динамическую память и вернуть ее указатель то она возвращает 0(ноль), так что проверка думаю здесь не лишняя... Есть же пользователи которые могут выделить массив на -5 елементов...


Цитата Сообщение от igor_nf Посмотреть сообщение
я кажется понял... что ж - продолжайте программировать в turbo C.. там такого, видимо, не наблюдается..
Какая разнится в какой среде писать, разные окошки программы? Компилятор - вот сила! А остальное не важно...
Цитата Сообщение от igor_nf Посмотреть сообщение
С++ предоставляет механизм ссылок, в данном случае он будет как раз к месту. Или вас прёт через каждые три строчки проверять указатель на валидность?
Возможно что данный НАЧИНАЮЩИЙ прогер еще не достиг данных высот... так что не грузи!

Цитата Сообщение от igor_nf Посмотреть сообщение
P.S. Код в юмор.
Можно вместе с тобой) С компилятором пообщаешся)
rinal
0 / 0 / 0
Регистрация: 11.10.2008
Сообщений: 15
11.10.2008, 16:02     Создание динамического массива #29
Я в C++ не так уж разбираюсь, так что извини
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2008, 16:30     Создание динамического массива
Еще ссылки по теме:

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

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

Создание динамического массива строк - C++
Всем доброго утра/вечера/дня. Возникла такая проблема. Не могу создать динамический массив строк. Т.е. нужно при вводе с клавиатуры...

Создание динамического символьного массива - C++
Здравствуйте. Помогите пожалуйста решить след задачу!!! Запросить у пользователя максимально возможную по условиям задачи длину LenMax...

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


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

Или воспользуйтесь поиском по форуму:
WaRLoCK_UA
0 / 0 / 0
Регистрация: 09.10.2008
Сообщений: 20
11.10.2008, 16:30     Создание динамического массива #30
Я сам не шибко разбираюсь, только учусь) А так проблем нет! За что извиняешся? Не зделал вроде ничо!)
Yandex
Объявления
11.10.2008, 16:30     Создание динамического массива
Ответ Создать тему
Опции темы

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