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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ как вызвать метод "верхнего" из вложенного класса http://www.cyberforum.ru/cpp-beginners/thread717096.html
class Fraction{ friend class Calk; long int a; unsigned short int b; public: void Read( Fraction &a, Fraction &b, int a_1,int e_1,int b_1,int d_1){ a.a=a_1; a.b=e_1; b.a=b_1;
C++ Пирамидальная соритровка Парни, есть код етой сориторви, есть масив который надо посортировать. Но есть проблема, я не знаю что надо передать в функцию heapsort(int n), что такое n, ведь мне надо масив посортировать, почему не масив передаетья. Код "склеил" из лекции по алгоритмах сортировки. #include <iostream> #include <conio.h> #include <time.h> using namespace std; struct INF { int key; char info; http://www.cyberforum.ru/cpp-beginners/thread717088.html
C++ std::regex и boost::regex
Что-то я не пойму что реализация их различна ? #include <iostream> #include <string> //#include <regex> //using namespace std; #include <boost/regex.hpp> using namespace boost;
Деревья (Определить общие источники двух статей, начиная с заданного года) C++
Доброго времени суток форумчане! По САОДу дали задание, Имеются две статьи. Каждая из них включает список источников. В них в свою очередь могут быть ссылки на другие источники. Известен год опубликования каждой статьи. Определить общие источники двух статей, начиная с заданного года. Я вообще не могу сообразить, какое здесь применяется дерево и как его организовать. Я понимаю, что точно не...
C++ где можно скачать с++ http://www.cyberforum.ru/cpp-beginners/thread717058.html
скажите где можно скачать Dev-C++ с библиотеками и что бы работал на русском
C++ Функция грамматики (объяснить) здравствуйте помогите разобрать функцию, char *Grammar={ "Z:E", "E:E+T", "E:E-T", "E:T", "T:T*F", "T:T/F", подробнее

Показать сообщение отдельно
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
03.12.2012, 19:36     Не пойму как реализовать такой массив=) (формирование массива сумм)
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;
}
 
Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru