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

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

Войти
Регистрация
Восстановить пароль
 
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
#1

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

06.02.2011, 20:00. Просмотров 585. Ответов 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
int t(int i);
 
 
int main();
{
int *p;
 
p = new int[10]; // Виділення пам'яті для масиву з 10 елементів типу int
srand(time(NULL);
p = rank()%200;
s =int t(0);
 
delete [] p; // Звільнення виділеної пам'яті
 
 
return 0;
}
int t(inti)
{
sum=0;
for(i;i<10;i++);
sum+=i
return i;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
06.02.2011, 20:16     Динамическое выделение памяти #2
тут и без компилятора видно не мало ошибок)
Цитата Сообщение от kaffein Посмотреть сообщение
int t(int i);
int main();
{
int *p;
p = new int[10]; // Виділення пам'яті для масиву з 10 елементів типу int
srand(time(NULL); - скобка
p = rank()%200; - rand, а не rank и не так, а p[НОМЕР ЭЛ МАССИВА] = rand()%200;
s =int t(0);- почему передаем 0 то?для чего int стоит? ... s = t(p[НОМЕР ЭЛ МАССИВА]);
delete [] p; // Звільнення виділеної пам'яті
return 0;
}
int t(inti) - int i
{
sum=0;
for(i;i<10;i++);
sum+=i - почему прибавляем i? когда необходимо прибавлять элемент массива.
return i; - возвращаем не i, а sum.
}
Добавлено через 52 секунды
Цитата Сообщение от kaffein Посмотреть сообщение
srand(time(NULL);
p = rank()%200;
s =int t(0);
и эту часть делайте в цикле ..
Somebody
2777 / 1591 / 142
Регистрация: 03.12.2007
Сообщений: 4,169
Завершенные тесты: 1
06.02.2011, 20:19     Динамическое выделение памяти #3
Цитата Сообщение от kaffein Посмотреть сообщение
нет на чом проверить
Онлайн компиляторы есть
http://codepad.org/
http://www.onlinecompiler.net/
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
06.02.2011, 20:30  [ТС]     Динамическое выделение памяти #4
та я тот код писал, буквально 2 мин. не мог бы ти написать как правильно нужно справится с тем заданием
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
07.02.2011, 10:21     Динамическое выделение памяти #5
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
#include<iostream>
using namespace std;
 
int add (int *mas, int q)
{
    int i, sum=0;
    for (i=0; i<q; i++)
        sum+=mas[i];
    return sum;
}
void print (int *mas, int q)
{
    int i, summa=0;
    cout<<"Array: \n";
    for (i=0; i<q; i++)
        cout<<mas[i]<<" ";
    summa=add (mas, q);
    cout<<"\nSumma: "<<summa<<endl;
}
int main ()
{
    int n, i, k=0;
    cout<<"Enter n: ";
    cin>>n;
    int *a=new int [n];
    cout<<"Enter "<<n<<" elements: \n";
    for (i=0; i<n; i++)
        cin>>a[i];
    print (a, n);
    delete [] a;
    return 0;
}
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
07.02.2011, 14:32  [ТС]     Динамическое выделение памяти #6
один вопрос:
ти передаёшь в функцию add и sum - mas, а выделяешь память для а?
И можно зделать функцию, которая заполняет масив случайными числами!
если можно с коментами
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
07.02.2011, 14:41     Динамическое выделение памяти #7
ти передаёшь в функцию add и sum - mas, а выделяешь память для а?
память для а выделяется тут
C++
1
 int *a=new int [n];
new int выделяет память под n элементов типа int.
Функция add вызывается из функции print (в add вычисляется функция и передается ответ в print для печати)
Чтобы заполнить случайными числами, добавь в самое начало
C++
1
#include <time.h>
а main будет выглядеть так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main ()
{
    
        int n, i, k=0;
        cout<<"Enter n: ";
        cin>>n;
        int *a=new int [n];
        srand(time(NULL));
        cout<<"Enter "<<n<<" elements: \n";
        for (i=0; i<n; i++)
               a[i]=rand()%20; //заполнение массива случайными числами от 0 до 19
        print (a, n);
        delete [] a;
        return 0;
}
kaffein
5 / 5 / 1
Регистрация: 14.11.2010
Сообщений: 121
07.02.2011, 16:05  [ТС]     Динамическое выделение памяти #8
понял, спасибо!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2011, 17:23     Динамическое выделение памяти
Еще ссылки по теме:

Динамическое выделение памяти C++
Динамическое выделение памяти C++
C++ Динамическое выделение памяти
C++ Динамическое выделение памяти
динамическое выделение памяти C++

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

Или воспользуйтесь поиском по форуму:
Valerko
17 / 17 / 1
Регистрация: 30.11.2010
Сообщений: 164
07.02.2011, 17:23     Динамическое выделение памяти #9
C++
1
2
3
    
#include <stdlib.h> // нужна для функции rand
#include <time.h> // берёт значение времени (секунды) и использует его для генерации
все остальное как показал NNN777
Yandex
Объявления
07.02.2011, 17:23     Динамическое выделение памяти
Ответ Создать тему
Опции темы

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