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

Динамический массив целых чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
YuriiG
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 11
25.12.2011, 14:17     Динамический массив целых чисел #1
Здравствуйте! Помогите создать динамический массив целых чисел. Заполнить с клавиатуры. Количество элементов задается случайно. Найти сумму модулей элементов массива, расположенных после первого элемента, равного нулю. При написании использовать функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
25.12.2011, 14:30     Динамический массив целых чисел #2
Писать тебе весь код никто не будет,напиши сам,что не сможешь - помогу.
YuriiG
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 11
25.12.2011, 14:35  [ТС]     Динамический массив целых чисел #3
кому не сложно напишите, а то я дуб-дубом
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.12.2011, 14:48     Динамический массив целых чисел #4
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
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <numeric>
#include <algorithm>
 
template <class T> T gen()
{
    int x;
    std::cin >> x;
    return x;
}
 
template <class T> T func(T init, T num) { return init + abs(num); }
 
int main()
{
    std::vector<int> v;
    srand(time(NULL));
    int size = rand() % 26 + 5;
    std::cout << "input " << size << " numbers:" << std::endl;
    v.resize(size);
    std::generate(v.begin(), v.end(), gen<int>);
    std::cout << std::accumulate(std::find(v.begin(), v.end(), 0), v.end(), 0, func<int>) << std::endl;
    return 0;
}
YuriiG
1 / 1 / 0
Регистрация: 21.12.2011
Сообщений: 11
25.12.2011, 14:55  [ТС]     Динамический массив целых чисел #5
спасибо
но если есть у кого-то возможность написать используя более простой способ, пожалуйста напишите
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.12.2011, 15:11     Динамический массив целых чисел #6
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <cmath>
 
template <class T> void generate(T *begin, T *end, T num())
{
    for( ; begin != end; *begin++ = num())
        ;
}      
 
template <class T> T gen()
{
    int x;
    std::cin >> x;
    return x;
}
 
template <class T> T accumulate(T *begin, T *end, T init, T func(T, T))
{
    for( ; begin != end; ++begin)
        init = func(init, *begin);
    return init;
}
 
template <class T> T* find(T *begin, T *end, T num)
{
    for( ; begin != end; ++begin)
        if(*begin == num)
            return begin;
    return begin;
}
 
template <class T> T func(T init, T num) { return init + abs(num); }
 
int main()
{
    srand(time(NULL));
    int size = rand() % 26 + 5;
    std::cout << "input " << size << " numbers:" << std::endl;
    int *arr = new int [size];
    generate(arr, arr + size, gen<int>);
    std::cout << accumulate(find(arr, arr + size, 0), arr + size, 0, func<int>) << std::endl;
    delete[] arr;
    return 0;
}
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.12.2011, 15:41     Динамический массив целых чисел #7
soon, конечно сильно упростили
Еще вариант
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
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <numeric>
 
using namespace std;
 
int accum_abs (int sum_so_far, int x)
{
    return sum_so_far + abs(x);
}
 
int main()
{
    int size;
    vector <int> arr;
    int i;
    int val;
 
    cout << " Enter size = ";
    cin >> size;
 
    for ( i = 0 ; i < size ; ++i )
    {
        cout << " Enter arr[" << i << "] = ";
        cin >> val;
        arr.push_back (val);
    }
 
    cout << " Arraey : ";
    for ( i = 0 ; i < size ; ++i )
            cout <<arr[i] << "  ";
 
 
    cout << " Summa = " << accumulate ( find ( arr.begin(), arr.end(), 0),  arr.end(), 0, accum_abs);
 
    return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
25.12.2011, 16:01     Динамический массив целых чисел #8
Цитата Сообщение от go Посмотреть сообщение
soon, конечно сильно упростили
Зато функций больше. Задание, как я полагаю, основано на том, чтобы научить работать с функциями.
Может кто-то компилировал #6, ни у кого ошибок не было? На g++ все в норме, а у ТС вылезли вдруг.
Код
error LNK2001: unresolved external symbol "int __cdecl func(int,int)" (?func@@YAHHH@Z)
 error LNK2001: unresolved external symbol "int __cdecl gen(void)" (?gen@@YAHXZ)
andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
27.12.2011, 09:03     Динамический массив целых чисел #9
Да..и вправду все сложно,можно проще немного
подключаем alloc.h в библиотеку, и перед использованием массива,еще типо этого :int new (int * bla bla)
короче погугли, и найдешь
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.12.2011, 11:19     Динамический массив целых чисел #10
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
template <class T> T gen()
{
    int x;
    std::cin >> x;
    return x;
}
Что это?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.12.2011, 11:37     Динамический массив целых чисел #11
Цитата Сообщение от fasked Посмотреть сообщение
Что это?
Заполнение массива конечно же. Вот только с int косяк вышел...
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.12.2011, 12:35     Динамический массив целых чисел #12
Цитата Сообщение от soon Посмотреть сообщение
Заполнение массива конечно же.
Дык, а шаблон тогда зачем?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.12.2011, 13:10     Динамический массив целых чисел #13
Не, изначально это выглядело примерно так
C++
1
2
3
4
5
6
7
std::generate(v.begin(), v.end(),
    []
    {
        int x;
        std::cin >> x;
        return x;
    });
Потом, для возможности компиляции без поддержки C++0x, запихнул это в шаблонную функцию, а int убрать забыл. Планировалось вот так
C++
1
2
3
4
5
6
template <class T> T gen()
{
    T x;
    std::cin >> x;
    return x;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 22:41     Динамический массив целых чисел
Еще ссылки по теме:

Задан динамический массив целых чисел Z C++
C++ В функцию передается несколько целых чисел. Создать из всех параметров динамический массив и вернуть указатель
Задан массив K(m) попарно различных целых чисел. Получить все перестановки целых чисел C++

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

Или воспользуйтесь поиском по форуму:
andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
27.12.2011, 22:41     Динамический массив целых чисел #14
Вот вот.не то. я же написал через алок+ гугли)
Yandex
Объявления
27.12.2011, 22:41     Динамический массив целых чисел
Ответ Создать тему
Опции темы

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