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

Рекурсия!!!! - C++

Восстановить пароль Регистрация
 
MakeMeStrong
Сообщений: n/a
21.12.2011, 21:33     Рекурсия!!!! #1
Доброго времени суток!!!
В С++ полный нуб.... маюсь не первый день с такой задачкой:
Напишите рекурсивную подпрограмму вычисления произведения элементов массива состоящего из n элементов.

Накропал следущее:
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
#include <iostream>
#include "windows.h"
using namespace std;
 
int rustext(char str[])
{
    char temp[256];
    CharToOem(str,temp);
    cout<<temp;
    return 0;
}
 
int array(int i)
{
    int n;
    float *a = new float [n];
    for(i=n; i>=0; i--) a[i]==0 ? 0 : a[i]*array(i-1);
    cout << array(n);
    return 0; 
}
int main(int argc, char* pszArgv[])
{  
    int n, i;
    float *a = new float [n];
    rustext("Введите количество элементов в массиве");
    cin >> n;
    rustext("Введите элементы массива ");
    for(i=0; i<n; i++) cin >> a[i];
    cout << array(i);
    system("PAUSE");
    return 0;
}
Понимаю что порю бок, понимаю что данные полученные при вводе не попадают в функцию как сделать непонимаю...
Вопрос даже не в том чтоб помогли сделать.... ткните пальцем чего не вижу, и что не понимаю
Буду безумно благодарен, плохо сплю из-за этой задачи не первый день)))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2011, 21:33     Рекурсия!!!!
Посмотрите здесь:

Рекурсия C++
Рекурсия C++
Рекурсия C++
рекурсия C++
C++ Рекурсия
C++ Рекурсия
C++ Рекурсия
C++ Рекурсия

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
21.12.2011, 22:10     Рекурсия!!!! #2
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>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int innerProduct( int *ptr, size_t size )
{
    return size != 0 ? ptr[size-1] * innerProduct( ptr, size - 1 ) : 1;
}
 
int main()
{
    setlocale( LC_ALL,"rus" );
    srand( static_cast< unsigned int >( time(0) ) ); 
 
    size_t size = 0;
    cout << "Введите размер массива: ";
    cin >> size;
    int *ptr = new int[size];
    for( size_t i = 0; i < size; ++i )
    {
        ptr[ i ] = 1 + rand()%9;
        cout << ptr[ i ] << ' ';
    }
 
    cout << "\nПроизведение всех элементов равно = " << innerProduct( ptr, size ) 
        << endl;
    delete []ptr;
    system("pause");
    return 0;
}
Yandex
Объявления
21.12.2011, 22:10     Рекурсия!!!!
Ответ Создать тему
Опции темы

Текущее время: 15:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru