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

Не могу разобраться с отработкой рекурсивной функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ факториал http://www.cyberforum.ru/cpp-beginners/thread257662.html
#include <iostream> using namespace std; size_t fact(size_t n) { if(n==0) return 1; return n*fact(n-1); } int main()
C++ Определение самого часто встречающегося латинского символа в тексте Помогите пожалуйста срочно! Дан произвольный текст количество строк в котором не более 10 а количество символов в каждой строке не более 80 определить какая латинская буква чаще всего встречается в тексте. http://www.cyberforum.ru/cpp-beginners/thread257648.html
C++ В чем отличие указателей и массивов на примере strlen()?
Здравствуйте уважаемые форумчаче. Появился вот такой вопрос. Почему функция strlen работает в таком случае: const int num=100; char arr; //массив cout << "Enter string \n"; cin.getline(arr, num); int k;
C++ знак вопроса
что означает знак вопроса вот здесь: double gcd (int x, int y ) { return (( y == 0) ? x : gcd (y, x % y )); } программа про НОК
C++ Разработать программу, обеспечивающую ввод, хранение, обработку и вывод информации о множестве объектов заданного типа http://www.cyberforum.ru/cpp-beginners/thread257621.html
Разработать программу, обеспечивающую ввод, хранение, обработку и вывод информации о множестве объектов заданного типа. Информация о каждом объекте однотипная, хранится в записи. Список необходимо реализовать при помощи одномерного массива записей (array of Тип_записи). Перемещение по пунктам меню осуществляется с помощью буквенных клавиш (для каждой строки клавиша своя).Вертикальное меню ...
C++ Вычесления. Преременные double Вот я столкнулся с проблемой вычисления. Проблема в том что я обьявил переменные с двойной точностью (double) И врорде всё правильно а программа не считает. Вроде бы она на компьютере он посильнее обычного калькулятора . А почему он не считает.В ответе нули всегда#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <math.h> #include <time.h> #include... подробнее

Показать сообщение отдельно
Dexter
 Аватар для Dexter
284 / 144 / 16
Регистрация: 13.10.2009
Сообщений: 164
15.03.2011, 13:22     Не могу разобраться с отработкой рекурсивной функции
1) Циклы там ненужны совсем
2) Нету else, потому после прохода ифа оно и заходит в следующую функцию.

Должно выглядеть где-то так:

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
int fc(int* ar1, int* ar2, int size1, int size2) {
    int j = size2 - 1;
    int i = size1 - 1;
    if(size1==0||size2==0)return num;
    if (ar1[i] == ar2[j]) {
        if (j == 0) 
        {
            num++;
            for(int k=0;k<size1+size-1;k++)//Добавил вывод на экран чтобы посмотреть правильно ли считает
                printf("%i ",ar1[k]);
            printf("\n");
            for(int k=0;k<size;k++)
                printf("%i ",ar2[k]);
            printf("\n\n");
            fc(ar1, ar2, i, size);
        }
        else
        fc(ar1, ar2, i, j);
    }
    else
    fc(ar1, ar2, i, size);
 
    return num;
}
 
Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru