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

Не пойму как реализовать такой массив=) (формирование массива сумм) - C++

Восстановить пароль Регистрация
 
Zhenya Russkiy
 Аватар для Zhenya Russkiy
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 59
03.12.2012, 01:17     Не пойму как реализовать такой массив=) (формирование массива сумм) #1
Заданий масив C(30). сложить программу формирования масива сумм:
B(1)=C(1)+C(6)+C(11)+...+C(26)
B(2)=C(2)+C(7)+C(12)+...+C(27)

Добавлено через 20 минут
Ребята срочнооо=)) Помогите=))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2012, 01:17     Не пойму как реализовать такой массив=) (формирование массива сумм)
Посмотрите здесь:

Как заполнить такой массив C++
Как инициализировать такой массив C++
Массив: Из элементов массива найти несколько сумм, из котрых в итого выбрать минимальную C++
C++ Строковые литералы, не пойму как реализовать
C++ Формирование одномерного массива из сумм элементов каждой строки матрицы, кратных числу k
C++ Получить новый массив, состоящий из сумм цифр элементов исходного массива
Массив из сумм чисел исходного массива C++
Формирование денежных сумм C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
03.12.2012, 02:38     Не пойму как реализовать такой массив=) (формирование массива сумм) #2
C++
1
2
3
4
5
6
...
int c[30]= {.......}; здесь вводите злементы массива или в циклеж
int b[3]={0,0,0};
for (int i=1; i<27; i+=5) b[1]+=c[i];
for (int i=2; i<28; i+=5) b[2]+=c[i];
...
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
03.12.2012, 19:36     Не пойму как реализовать такой массив=) (формирование массива сумм) #3
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
#include <iostream>
#include <array>
#include <cstdint>
#include <iterator>
#include <iomanip>
 
const uint32_t A_ARRAY_SIZE(30);
const uint32_t B_ARRAY_SIZE(4);
 
class shit
{
private:
    std::array<int, A_ARRAY_SIZE> A;
    std::array<int, B_ARRAY_SIZE> B;
public:
 
    shit()
    {
        for (uint32_t i = 0; i < A.size(); ++i )
            A[ i ] = i;
        B.fill(0);
    }
 
    shit( shit &__n) {}
 
    ~shit() {}
 
    void set ()
    {
        uint32_t i = 0;
        for (auto it = this->B.begin(); it != this->B.end(); ++it)
            for (uint32_t k = i; k < (A_ARRAY_SIZE - B_ARRAY_SIZE + i); ++k)
                *it += this->A[ k ];
 
    }
 
    std::ostream &operator <<(std::ostream &out)
    {
        uint32_t i = 0;
        for (auto it = this->B.begin(); it != this->B.end(); ++it)
            out << "B [" << std::setw(2) << i++ << "]" << std::setw(5) << *it << '\n';
        return out;
    }
};
 
int main()
{
    shit O;
    O.set();
 
    O.operator <<(std::cout);
 
    return 0;
}
Добавлено через 7 минут
ой, я совсем не то написала.

Добавлено через 17 минут
а я переписала программу, теперь как надо по ТЗ.

Добавлено через 10 часов 48 минут
поле set() надо переписать так и будет правильно.
C++
1
2
3
4
5
6
7
8
9
10
11
    void set ()
    {
        uint32_t i = 0;
        for (auto it = this->B.begin(); it != this->B.end(); ++it)
        {
            for (uint32_t k = i; k < (A_ARRAY_SIZE - B_ARRAY_SIZE + i); ++k)
                *it += this->A[ k ];
            ++i;
        }
 
    }
Добавлено через 3 часа 19 минут
вот это будет работать в старом стандарте. Синтаксис более понятный. Если уж совсем так тяжело.
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
#include <iostream>
#include <vector>
#include <iomanip>
#include <cstdint>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
#define A_ARRAY_SIZE (30)
#define B_ARRAY_SIZE (4)
#define RAND_MAXIMUM (30)
 
class shit
{
private:
    std::vector<int> A;
    std::vector<int> B;
public:
 
    shit()
    {
        uint32_t i = 0;
 
        A.resize(A_ARRAY_SIZE);
        B.resize(B_ARRAY_SIZE);
        while (i < A_ARRAY_SIZE)
        {
            A[ i ] = std::rand() % RAND_MAXIMUM - RAND_MAXIMUM / 2;
            ++i;
        }
        i = 0;
 
        while (i < B_ARRAY_SIZE)
        {
            uint32_t j = i;
            int sum = 0;
 
            while (j < A_ARRAY_SIZE - B_ARRAY_SIZE + i)
                sum += A[ j++ ];
            B[ i ] = sum;
            ++i;
        }
    }
 
    ~shit(){}
 
    std::ostream &operator << (std::ostream &out)
    {
        out << "array A:\n";
        for (uint32_t i = 0; i < A_ARRAY_SIZE; ++i )
            out << std::setw(4) << A[ i ];
        out << std::endl;
        out << "array B:\n";
 
        for (uint32_t i = 0; i < B_ARRAY_SIZE; ++i )
            out << std::setw(4) << B[ i ];
        out << std::endl;
        return out;
    }
};
 
int main()
{
    std::srand(std::time(NULL));
    shit a, b,c;
    a.operator <<(std::cout);
    b.operator <<(std::cout);
    c.operator <<(std::cout);
 
    return 0;
}
Yandex
Объявления
03.12.2012, 19:36     Не пойму как реализовать такой массив=) (формирование массива сумм)
Ответ Создать тему
Опции темы

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