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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Раскраска графа, форма http://www.cyberforum.ru/cpp-beginners/thread602504.html
Здравствуйте, товарищи программисты)) Обращаюсь к вам с такой проблемой: имеется задача о раскраске графа числом k цветов и есть её решение доставшееся от друга, но проблема в том, что это только отчёт без исходников. Пробовал сделать форму, но чего-то не выходит никак(((( Помогите пожалуйста, горит совсем))) Прикладываю отчёт со скриншотами, описанием программы и её кодом
C++ PAUSE >> void :) Есть такой код: system("PAUSE >> void"); Вообщем программа работает, но не совсем так, как хотелось бы. Смысл в том, что ">> void" работает как "echo >> void pause" т.е. создает файл void и записывает туда (Для продолжения...) Вот охота понять, почему так. Может из-за того, что компилятор такой? Обычный MinGW G++. P.S Я понимаю, что это тема только добавляет хлам, но... :p 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
11.06.2012, 08:07     Задачи на рекурсию
Здорова господа!
У меня щас появилась проблема.
Решаю задачки на рекурсию от первая задача //палиндромы//создать функцию 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 программа работает правильно тока возвращает неправильно что одна что другая.
В чем может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru