Mozillaro

Programmazione Aiuto Con Funzione Banale RICORSIVA

Recommended Posts

#include<iostream>
using namespace std;
int mul(int,int);
int main()
{
int v[5],d=5,moltiplicazione;
for(int i=0;i<d;i++){ cout<<"inserisci il numero :";
cin>>v;}
moltiplicazione=mul(v,d);
if(moltiplicazione==0)
cout<<"la moltiplicazione non ha avuto successo ";
else
cout<<"la moltiplicazione e': "<< moltiplicazione;
}

int mul (int v[],int dim){
if(v[dim]==0)
return 0;
else
return v[dim]*mul(v,dim-1);
}

;
 

 

ciao ragazzi nello spoiler trovate una piccola funzione ricorsiva ma da errore proprio nella ricorsione ma non capisco il motivo nonostante mi sia fatto uno schema riguardo a ciò qualcuno mi può spiegare quale sia l'errore e magari portarmi qualche altro esempio banale di ricorsione affinchè io capisca al meglio tale funzione (il supplente l'ha spiegato da contadino e pretende di fare un compito su questo argomento pleasee aiutatemii!)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

hai fatto un pò di casino , spero che questo ti aiuti :sasa: ora devo scappare XD

magari usa i tag

 per mettere il codice nei post, viene più bello da vedere asd
#include<iostream>using namespace std;int mul(int*,int); // nel prototipo hai specificato un intero come primo argomento ma in realtà gli passi un array che è un pointerint main(){int v[4],moltiplicazione; // Qua hai fatto un pò di casino con gli indici e le varie dimensionalitàint d=4;for(int i=0;i<=d;i++){ cout<<"inserisci il numero :";cin>>v[i];}moltiplicazione = mul(v,d);if(moltiplicazione==0)cout<<"la moltiplicazione non ha avuto successo ";elsecout<<"la moltiplicazione e': "<< moltiplicazione;}int mul (int v[],int dim){    if(dim == 0)return v[dim]; //qui devi ritornare l'ultimo valore da moltiplicare ,se ritorni 0 è come moltiplicare tutti i valori prima per 0 e quindi il risultato ti da sempre 0elsereturn v[dim]*mul(v,dim-1);}

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

@Crowder ti dispiacerebbe fare anche il massimo comune divisore che non saprei cosa restituirgli diventerebbe un ciclo continuo! ho capito ho sbagliato con le dimensioni ahah 

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora