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

Прерывание работы рекурсионной функции типа void - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не получается изменить данные в бинарном файле http://www.cyberforum.ru/cpp-beginners/thread968052.html
Здравствуйте. Мучаюсь, не пойму как сделать чтобы изменить данные. Программа обращается к файлу с базой (структуре).В структуре счет, фамилия, имя, баланс. Все функции прописал, а функцию "удалить счет" не получается. Вместо удаления счета хочу просто номер счета изменить на 0, чтоб при выводе всех данных нулевые счета не выводились. В коде функция откоментирована как ///Удаление нужной записи....
C++ Найти максимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread968041.html
Замена фона в C++ C++
У меня есть консольное приложение, как поменять в нем фон что бы выводило вместо сетки глубины - зеленый фон.
C++ Пустая консоль
Когда открываешь программу(после компиляции на dev-c++), то появляется пустая консоль, на которой ничего не отображается. #include <iostream> using namespace std; int main() { int x; for(x=0; x>6; x++) { if (x==1) cout << "õ ðàâåí îäíîìó\n";
C++ Задача на двумерные массивы http://www.cyberforum.ru/cpp-beginners/thread967983.html
омогите пожалуйста наброски есть Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех строках, которые не содержат отрицательных элементов; минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. вот пример для задачи
C++ Разработка с разветвлениями.Составные условия Определить сумму налога на доходы, который необходимо оплатить, если процент отчислений зависит от суммы дохода. Если доход не превышает суммы 500, то процент составляет P1, если доход не превышает 1600, то процент-P2, если сумма дохода меньше 5000, то процент - P3, если же сумма дохода превышает 5000, то процент составляет P4. Процентные ставки P1, P2, P3, P4 - ввести с клавиатуры. Предусмотреть... подробнее

Показать сообщение отдельно
Greeezly
 Аватар для Greeezly
6 / 6 / 1
Регистрация: 31.08.2012
Сообщений: 230
03.10.2013, 14:25     Прерывание работы рекурсионной функции типа void
Есть рекурсионная функция, имеющая нечто общее с функцией ниже:

C++
1
2
3
4
5
6
7
8
9
void function test(int b)
{
int a;
a = b;
a++;
if (a == 10)
     return;
test(a);
}
Так вот, почему-то моя функция не прерывается ретурном..

вот мой код:
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
void quick_sort_helper(int *sf_mass,int in, int out, int n) //на вход (массив, номер 1го, номер N-го, размер массива)
{
    int a,b,p,mid, size;
    size = out - in;
    a = in;
    b = out - 1;
    mid = out;
    if ((size) < 1)
        return ;
    if (((size) == 1)&&(b == (n-1))) // (*)
    {
        std::cout<<"b = "<<b<<std::endl;
        return ;
    }
    else
    {
    p = sf_mass[mid];
    do
    {
        while (sf_mass[a] < p) a++;
        while ((sf_mass[b] > p)&&(b > in)) b--;
        
        if (a<b)
        {
            apmath_easyfunc::swap_int(&(sf_mass[a]),&(sf_mass[b]));
        }
    }   while (a<b);
    if (sf_mass[a] > sf_mass[mid])
        apmath_easyfunc::swap_int(&(sf_mass[a]),&(sf_mass[mid]));
    if (b > in) quick_sort_helper(sf_mass, in, b, n);
    if (a < n) quick_sort_helper(sf_mass, a, n, n);
    }
}
по идее, когда указатель а доходит до N-го элемента, if, помеченный звездочкой, должен выкинуть меня из функции, этого не происходит, и каким -то неведомым мне образом, сортировка еще несколько раз вызывается.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru