Да се напишат рекурсивни функции, които за даден едномерен масив а от n цели числа намират:
- сумата на елементите
- броят на ненулевите елементи
- най-малкият елемент
- извеждат елементите на масива на екрана
- извеждат елементите на масива в обратен ред
- въвеждат елементите на масива от клавиатурата


Не съм сигурен дали това е най-правилния начин за намиране на най-малкият елемент
#include <cstdlib> #include <iostream> using namespace std; // 1. сумата на елементите int suma(int a[], int n){ if(n>=0) return a[n]+suma(a, n-1); else return 0; } // 2. броят на ненулевите елементи int nenulevi(int a[], int n, int br){ if(n>=0){ if(a[n]!=0) return nenulevi(a, n-1, br+1); else return nenulevi(a, n-1, br); } else return br; } // 3. най-малкият елемент int minim(int a[], int n, int min){ if(n>=0){ if(a[n]<min) return minim(a, n-1, a[n]); else return minim(a, n-1, min); } else return min; } // 4. извеждане на елементите на масива на екрана void print(int a[], int n){ if(n>=0){ print(a, n-1); cout<<a[n]<<" "; } } // 5. извеждане на елементите на масива в обратен ред void print_obr(int a[], int n){ if(n>=0){ cout<<a[n]<<" "; print_obr(a, n-1); } } // 6. въвеждане на елементите на масива от клавиатурата void vavedi(int a[], int n){ if(n>=0){ vavedi(a,n-1); cin>>a[n]; } } int main(int argc, char** argv) { int n; cout<<"Broi chisla: "; cin>>n; int a[n]; cout<<"Vavedi chislata:"<<endl; vavedi(a, n-1); cout<<endl; cout<<"Suma: "<<suma(a, n-1)<<endl; //Последния параметър(0) - броя на ненулевите cout<<"Nenulevi: "<<nenulevi(a, n-1, 0)<<endl; //a[n-1] - число от масива, с което ще сравняваме другите cout<<"Nai-malko: "<<minim(a, n-1, a[n-1])<<endl; cout<<"Vavedenite chisla: "; print(a, n-1); cout<<endl; cout<<"Vavedenite chisla v obraten red: "; print_obr(a, n-1); cout<<endl; return 0; }Браво, добре си разбрал рекурсията! За минималния елемент – ами да, това е – сравняваш текущия елемент с остатъка от опашката. Има и други начини, ще ти ги покажа в часа. Първите три функции могат малко да се оптимизират, като се вземе в предвид какво ще се случи близо до дъното на рекурсията. Така ще се спести някое и друго рекурсивно извикване. Функцията за брой на ненулевите елементи може да се опрости като се използва преобразуването между типовете.