Форум программистов, компьютерный форум, киберфорум
Наши страницы

Выход за пределы вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить количествово элементов, являющехся удвоенными нечетными числами http://www.cyberforum.ru/cpp-beginners/thread1723199.html
Задан массив чисел. Определить кол-во элементов, которые являются удвоенными нечетными числами. #include <iostream> using namespace std; int main(){ int a; int n, k=0; ...
C++ Оператор цикла с условием Не могу разобраться как сделать что бы в программе написанной по этой задаче: Дано натуральное число n. Выяснить входит ли цифра 3 в запись числа n, и поменять порядок цифр на обратный. Выводило... http://www.cyberforum.ru/cpp-beginners/thread1723180.html
Сложение векторов C++
Не понимаю почему методом insert не хочет принимать такие параметры. Даже если пытают переменной типа int присвоить vec, выдает ошибку (int a = vec), почему? Ведь вектор типа int. int summ(vector...
Ошибка компиляции при объявлении массива C++
using namespace std; const char IDSounds = { { "1", "sound1.wav", "5BE4A5E9CA66EF70748ED87D3137844D" }, { "2", "sound2.wav", "22995E97368EA8BD7EF24D318A1C892E" }, {...
C++ Заполнение структуры http://www.cyberforum.ru/cpp-beginners/thread1723159.html
Нужно написать задачку в DeV C++. В общем, при заполнении структуры со второй итерации проваливается гетлайн, цикл просто пропускает его. Это фишечка Dev, или я что-то упустил, как это фиксить? ...
C++ Запись структуры в бинарное дерево Помогите записать структуру в дерево? Нужно записать структуру в дерево. КИНЬТЕ ПРИМЕР ПОЖАЛУЙСТА Добавлено через 2 часа 19 минут ??? подробнее

Показать сообщение отдельно
Illko
1 / 1 / 0
Регистрация: 25.05.2015
Сообщений: 32

Выход за пределы вектора - C++

28.04.2016, 13:52. Просмотров 143. Ответов 1
Метки (Все метки)

Программа кодирует несколько чисел в одно. Проблема состоит в том, что когда используется рекурсия в функции С(int x, vector<int>y) вылетает ошибка о том, что произошел выход за пределы вектора, хотя с каждой рекурсией длинна вектора уменьшается на 1, после чего она должна начать возвращать значения.

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
int C(int x, vector<int> y) {
    bool b = false;
        //если кол-во элементов вектора больше одного, то функция опять вызовет себя
    if (y.size() >= 2)
        b = true;
    else b = false;
    int n = 0;
    if (b == true) {
        vector<int>k(y.size() - 1);
        for (int i = 0; i < k.size(); i++)
            k[i] = y[i + 1];
        n = C((pow((double)(x + y[0]), 2.0) + 3 * x + y[0]) / 2, k);
    }
    else {
        n = (pow((double)(x + y[0]), 2.0) + 3 * x + y[0]) / 2;
    }
    return n;
}
int main()
{
    int x = 0;
    vector<int>y(2);
    y[0] = 5;
    y[1] = 6;
    int n = C(x, y);
    cout << n << endl;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru