Я хотел сделать рекурсивную функцию для умножения элементов из массиваМоя рекурсивная функция, написанная на C++ не работает
Если мой массив имеет 1 элемент и v [1] является 1, программа Виль показать мне 4703488
Мой вопрос: почему?
#include<iostream>
using namespace std;
int prod(int n,int v[100])
{
if(n)
{
return prod(--n,v)*v[n];
}
return 1;
}
int main()
{
int v[100],n,i=1;
cout<<"n=";
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
cout<<prod(n,v);
return 0;
}
Если массив имеет один элемент, насколько v [ 1] станет «1»? v [0] должно быть «1». – kadina
Для массива с 1 элементом 'v [1]' is * за пределами границ *, так как индексы массива начинаются с 0. – crashmstr
скомпилируются со всеми предупреждениями и информацией об отладке ('g ++ -Wall -Wextra -g'). Затем ** используйте отладчик ** 'gdb' –