[C]Somma 2 array ricorsiva

di il
3 risposte

[C]Somma 2 array ricorsiva

Salve qualcuno può aiutarmi a scrivere una funzione ricorsiva che somma 2 array??
Ho un array bidimensionale
int resoconto[32][11];
e nell'ultima riga devo sommare questo array
int oggi[11];
Non ho chiesto di farmi l'esercizio solo qualcuno disponibile a sentire le mie idee

3 Risposte

  • Re: [C]Somma 2 array ricorsiva

    maxilrosso ha scritto:


    Vogliamo scrivere una funzione ricorsiva che somma due array.

    intanto io farei una dichiarazione di questo tipo
    
    void somma (int *a, int *b, int *somma, int dim);
    
    Quindi passerei i due array da sommare, un terzo array dove salvare la somma e la dimensione di ciascun array da sommmare (le dimensioni dei due array devono coincidere!)
    Il fatto e che io devo sommare l'array oggi[11] all'array resoconto[31][11]
    con un for penso che verrebbe così
    for(i=0;i<11;i++)
    resoconto[31][i]=resoconto[31][i]+oggi[i];
    non mi serve un terzo array
  • Re: [C]Somma 2 array ricorsiva

    Questo può anche funzionare, ma hai chiesto una funzione ricorsiva e il for è iterativo.
    Per farla ricorsiva la prima cosa che devi fare è cercare il passo bas, cioè quel passo che ti permette di terminare la ricorsione.
    Prova così: fai una funzione che prende in input i due array e i due indici (partenza e fine). il passo base è quando partenza e fine sono uguali oppure partenza è più grande di fine. Successivamente fai le operazioni di somma su partenza e fine e poi richiami la funzione con partenza += 1 e fine -= 1.

    Ricorda: Ogni qualvolta che si deve sviluppare una funzione ricorsiva il passo base è fondamentale. Scelto quello sviluppi la funzione.
  • Re: [C]Somma 2 array ricorsiva

    int Calcolo_31esimo_giorno(int resoconto[31][11],int oggi[10],int n){
    
    if(n>0)
    {
    
        resoconto[31][n-1]=Calcolo_31esimo_giorno(resoconto,oggi,n-1);
    }
    
        return resoconto[31][n]=resoconto[31][n]+oggi[n];
        }
    
    Cosii?
Devi accedere o registrarti per scrivere nel forum
3 risposte