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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Flieriya
Сообщений: n/a
#1

Рекурсия: вычислить произведение элементов массива - C++

18.06.2008, 00:29. Просмотров 1196. Ответов 3
Метки нет (Все метки)

Привет! Помогите пожалуйста девушке необразованной найти ошибки в коде, а то выгонят нафиг Задача такая-вычислить произведение элементов массива рекурсивным алгоритмом. Тект проги, которая упорно выдаёт ноль как результат произведения:
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
#include<iostream.h>
#include<conio.h>
void vvod(int [],int);
void vuvod(int [],int);
int  rec(int [],int);
const int n=3;
void main()
{
clrscr();
 
int a[n];
vvod(a,n);
cout<<rec(a,n);
vuvod(a,n);
getch();
}
void vvod(int a[n],int n)
{
for (int i=0;i<n;i++)
cin>>a[i];
}
void vuvod(int a[n],int n)
{
for (int i=0;i<n;i++)
cout<<a[i];
}
 
int rec(int a[n],int n-1)
{
if (n-1>=0)
{return rec(a,n-2)*a[n];
}
else {
return 1;
 
 }
 
}
и может кто-то написать функцию для перестановки элементов стека x(1),x(2),...x(n)=>x(2),x(3),...x(n),x(1). Элементы пронумерованы в порядке их введения в стек. Программы мы пишем под дос без использования библиотек. ПОМОГИТЕЕЕ!!!!:huh:
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2008, 00:29     Рекурсия: вычислить произведение элементов массива
Посмотрите здесь:

Вычислить произведение элементов массива и произвести сортировку массива - C++
в одномерном массиве состоящем из N вещественных элементов вычислить произведение элементов массива. Упорядочить элементы массива по...

Вычислить и вывести произведение первых 7 элементов массива и сумму следующих 7 элементов находящихся на четных позициях - C++
Дан одномерный массив T, который состоит из 18 элементов. Вычислить и вывести произведение первых 7 элементов и сумму следующих 7 элементов...

Вычислить произведение элементов массива - C++
Буду при много благодарен за помощь Вычислить произведение элементов целочисленного массива, находящихся между минимальным и...

Вычислить произведение элементов массива - C++
Дано массив x=(12.37, 16.55, 2.43, 0.81, 0.32, 1.345, -12.18, 0.15, -4.314, 1.29, 54.38, 0.214, -3.837, 0.918, -75.014) и а=3.14, b= -7.8....

Вычислить произведение элементов массива - C++
Через функцию надо посчитать произведение не нулевых элементов массива, заданные случайно. Не могу понять почему выводит ерунду. ...

Вычислить произведение элементов одномерного массива - C++
Вычислить и вывести произведение элементов одномерного массива. Элементы массива задать случайным образом.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
18.06.2008, 08:17     Рекурсия: вычислить произведение элементов массива #2
Ошибка новичка : В Си массивы нумеруются с нуля,а значит последний элемент имеет номер n-1,где размер массива - n.
вызывай функцию rec(a,n-1) - и будет работать.

Еще совет - называй функции и переменные на английском языке.выглядит симпотичней,как минимум.
Flieriya
Сообщений: n/a
18.06.2008, 09:19     Рекурсия: вычислить произведение элементов массива #3
Спасибо конечно огромное, забыла про то, что массивы с нуля начинаются. Изменила и ничего по прежнему не работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2008, 09:31     Рекурсия: вычислить произведение элементов массива
Еще ссылки по теме:

Вычислить произведение отрицательных элементов массива - C++
Дан массив из n элементов (вещественные числа). Вычислить: 1) произведение отрицательных элементов массива 2) сумму элементов массива,...

Вычислить произведение не нулевых элементов массива - C++
Дан одномерный массив, состоящий из N целочисленных элементов. Заполнить массив случайными числами.Вычислить произведение не нулевых...

Вычислить произведение отрицательных элементов массива - C++
Вычислите произведение отрицательных элементов массива.

Вычислить произведение элементов массива по модулю - C++
Дан одномерный массив состоящий из n целых чисел, надо: вычеслить произведение элементов по модулю, которые находятся между максимальным...


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

Или воспользуйтесь поиском по форуму:
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
18.06.2008, 09:31     Рекурсия: вычислить произведение элементов массива #4
Ты изменила не то.Я имел в виду вот что :
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
#include<iostream>
using namespace std;
#include<conio.h>
void vvod(int [],int);
void vuvod(int [],int);
int rec(int [],int);
const int n=3;
int main()
{
//clrscr();
 
int a[n];
vvod(a,n);
cout<<rec(a,n-1);
vuvod(a,n);
getch();
return 0;
}
void vvod(int a[n],int n)
{
for (int i=0;i<n;i++)
cin>>a[i];
}
void vuvod(int a[n],int n)
{
for (int i=0;i<n;i++)
cout<<a[i];
}
 
int rec(int a[n],int n)
{
if (n>=0)
{return rec(a,n-1)*a[n];
}
else {
return 1;
 
}
 
}
Сравни со своим кодом,и пойми сама,что у тебя не так.
Yandex
Объявления
18.06.2008, 09:31     Рекурсия: вычислить произведение элементов массива
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru