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

одномерный массив в динамической памяти - C++

Восстановить пароль Регистрация
 
tanya_owl
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 17
22.01.2014, 16:38     одномерный массив в динамической памяти #1
Ребятки, помогите, пожалуйста, ещё разок)
решила задачу на заполнение одномерного массива, подсчет чисел кратных 7 и среднего арифметического и его сортировка, но мой вариант решения создает массив как я поняла в свободной памяти, а по условию необходимо создать массив в динамической памяти, и вот с этой самой памятью - проблемка. Я просто не понимаю как это делать((
Вот моё решение, помогите его исправить...
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
#include <iostream>
#include <algorithm>
using namespace std;
const int razmer=50;
int razm,maxzn,minzn;
int main()
{
 
 do {   cout << "Vvedite kolichestvo elementov massiva:";  cin >> razm;
if (razm<1 || razm >50) cout << "Kolishestvo vvedeno NEVERNO!!!" << endl; }
while (!(razm>0 && razm<=50));
 
cout<<"vvedite max:"<<endl;
cin>> maxzn;
cout<<"vvedite min:"<<endl;
cin>>minzn;
//int **mas= new int* [50];  //dinam
int mas[razm];
for (int i=0;i<razm;i++) // formirovanie massiva
     {mas[i]=rand()%(maxzn-minzn+1)+minzn; 
     cout <<mas[i]<<endl;}
 
 
int sum=0;//symma el kratn 7
for (int i=0;i<razm;i++)
      { if (mas[i]%7==0)
        sum+=mas[i];
      }
      cout<<endl<<"summa elementov kratn 7="<<sum<<endl;
int s=0;//srednee arifmet chisel >0
int k=0;
for (int i=0;i<razm;i++)
    {if(mas[i]>0) 
    ++k;}
 for (int i=0;i<razm;i++)
    {if(mas[i]>0) s+= mas[i];}
    //cout <<endl<< "Sum = " << s <<endl;
//cout<<"  Kol-vo = " << k<<endl;
float srA;
srA=s/k;
cout<<" SR.arifm = " << srA<<endl;
 
//sortirovka mas[i]
for(int i=0; i<razm; i++)
{sort(mas, mas + razm);}
for(int i=0; i<razm; i++)
cout <<mas[i]<<endl;
//udalen mass
    //for (int i = 0; i < razm; i++)
       // delete []mas[i];
 
 
system ("pause");
return 0;
 
 
 
 
}
Спасибо!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 16:41     одномерный массив в динамической памяти #2
Цитата Сообщение от tanya_owl Посмотреть сообщение
о мой вариант решения создает массив как я поняла в свободной памяти, а по условию необходимо создать массив в динамической памяти, и вот с этой самой памятью - проблемка. Я просто не понимаю как это делать((
Замени эту строчку
C++
1
int mas[razm];
на эту
C++
1
int *mas = new int[razm];
и в самом конце добавь
C++
1
delete []mas;
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,048
22.01.2014, 16:44     одномерный массив в динамической памяти #3
Цитата Сообщение от tanya_owl Посмотреть сообщение
//int **mas= new int* [50]; *//dinam
int mas[razm];
ну вот же у тебя
практически правильно
только выделяешь ты под указатели а нужно под int
C++
1
2
int *mas= new int[razm];
//int mas[razm];
и в конце нужно удалить выделенную память
не так
Цитата Сообщение от tanya_owl Посмотреть сообщение
//for (int i = 0; i < razm; i++)
* * * *// delete []mas[i];
а так
C++
1
delete []mas;
остальное должно сработать без изменений
tanya_owl
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 17
22.01.2014, 16:45  [ТС]     одномерный массив в динамической памяти #4
cooller_94, Спасибо) У меня были самостоятельные попытки, но не вышло))
Спасибо большое!!!))

Добавлено через 41 секунду
ValeryS, спасибо)
Yandex
Объявления
22.01.2014, 16:45     одномерный массив в динамической памяти
Ответ Создать тему
Опции темы

Текущее время: 20:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru