PDA

Visualizza versione completa : [C++]esercizio ricorsione


antony88
20-03-2008, 22.01.39
vi posto ques'esercizio:
// Somma ricorsiva
#include <iostream>

using namespace std;
// PROTOTIPI
void sommaArray1(int [],int,int&,int&);

// MAIN
int main ()
{
int N,vet[30],somma,conta;
cout<<"quanti elmenti ? : ";
cin>>N;

for(int i=0;i<N;i++)
cin>>vet[i];
somma=conta=0;//*
sommaArray1(vet,N,somma,conta);
cout<<"\n La somma "<<somma<<endl;
system("pause");
}
void sommaArray1(int vet[], int N, int &somma, int &conta)
{
if (N>0)
{
somma+=vet[--N];
conta++;
if (conta%3==0)
cout<<"somma parziale "<<conta<<"="<<somma<<endl;
sommaArray1(vet, N-1,somma,conta);
}
}


secondo voi è lecito inizializzare le variabili prima della chiamata *??
se la risposta e no dove posso inizializzarle

shadowDK
21-03-2008, 10.56.10
Premesso che è un po' che non programmo più in c++, direi proprio che quell'inizializzazione è lecita! l'unico consiglio che ti posso dare (ma non so a quanto ti serva non sapendo a cosa ti serve quel programma) è di controllare il valore di N dopo avere letto magari il un ciclo...se metti un valore maggiore di 30 come lo gestisci? o un valore negativo? ti andrà in crash il programma...per il resto, ad una prima occhiata, credo sia tutto corretto!