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

Задачи на рекурсию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Раскраска графа, форма http://www.cyberforum.ru/cpp-beginners/thread602504.html
Здравствуйте, товарищи программисты)) Обращаюсь к вам с такой проблемой: имеется задача о раскраске графа числом k цветов и есть её решение доставшееся от друга, но проблема в том, что это только...
C++ PAUSE >> void :) Есть такой код: system("PAUSE >> void"); Вообщем программа работает, но не совсем так, как хотелось бы. Смысл в том, что ">> void" работает как "echo >> void pause" т.е. создает файл void и... http://www.cyberforum.ru/cpp-beginners/thread602499.html
C++ Обработка данных о режущем инструменте
1. Составить программу обработки данных о режущем инструменте: название, марка материала, область применения (название станка), степень изношенности. Программа должна: • удалять из списка...
C++ Найти сумму квадратов чисел. codeblocks10.04
найти сумму квадратов чисел.... codeblocks10.04
C++ Даны действительные числа x и ε. Вычислить с заданной точностью ε=10^-4 сумму ряда: http://www.cyberforum.ru/cpp-beginners/thread602460.html
Даны действительные числа x и ε. Вычислить с заданной точностью ε=10^-4 сумму ряда:
C++ Вывести на печать индексы первого положительного элемента, кратного заданному числу K. В заданной целочисленной матрице A(N,M) вывести на начать индексы первого положительного элемента, кратного заданному числу K. Если таких элементов в матрице нет, то вывести соответствующий текст.... подробнее

Показать сообщение отдельно
ninja1
5 / 0 / 1
Регистрация: 11.06.2012
Сообщений: 6

Задачи на рекурсию - C++

11.06.2012, 08:07. Просмотров 3028. Ответов 10
Метки (Все метки)

Здорова господа!
У меня щас появилась проблема.
Решаю задачки на рекурсию от первая задача //палиндромы//создать функцию testPalindrome которая возвращает 1, если хранящаяся в массиве строка-палиндром, и 0 в противном случаю
вот код:
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
//ГЏГ*ëèГ*äðîìû
#include <iostream>
using std::cout;
using std::endl;
 
int testPalindrome(int[],int,int);
 
int main()
{
    int const arraySize=7;
    int mas[arraySize]={1,2,3,4,2,2,1};
    cout <<testPalindrome(mas,arraySize,0)<<endl;
    
    return 0;   
}
 
int testPalindrome(int mas[],int arraySize,int k)
{
    if((arraySize%2)==0)
    {
        cout <<0<<" ";
        return 0;
    }
    
    int k2=0;
    k2=arraySize-(k+1);
    
    if(k2<=k)
    {
        cout <<1<<" ";
        return 1;
    }
    
    cout <<"mas["<<k<<"]= "<<mas[k]<<" mas["<<k2<<"]= "<<mas[k2]<<endl;
    
    if(mas[k]!=mas[k2])
    {
        cout <<0<<" ";
        return 0;
    }
    else
        testPalindrome(mas,arraySize,k+1);   
 
}
В данном случае массив не палиндром но функция каким то макаром возвращает не 0 а число 2293512
0 прописываетса cout том программа идет правильно в чем может быть проблема

И еще одна задачка //линейный поиск// создаем рекурсивную функцию linearSeach ищет ключ поиска если найден то возвращаем индекс массива в противном случае -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
30
31
//ËèГ*ГҐГ©Г*ûé ïîèñê
#include <iostream>
using std::cout;
using std::endl;
 
int linearSeach(int[],int,int,int);
 
int main()
{
    int const arraySize=5;
    int mas[]={3,5,6,5,3};
    cout <<linearSeach(mas,arraySize,2,0);
    
    return 0;   
}
 
int linearSeach(int mas[],int arraySize, int key, int k)
{
    if(mas[k]==key&&k<arraySize)
    {
        cout <<k<<" key= "<<key<<endl;
        return k;  //âîçâðГ*ГІГЁГІГј ïîçèöèþ êëþ÷Г*
    }
    else if(k==arraySize)
    {
        cout <<-1;
        return -1;  
    }
    else
        linearSeach(mas,arraySize,key,k+1); 
}
Программа должна вернуть -1 так как значения 2 нет в массиве, а она возвращает 16384-непонятное число (откуда оно взялось) . cout том прописываю -1 программа работает правильно тока возвращает неправильно что одна что другая.
В чем может быть проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru