Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892

    [C] Vettore di interi e somma ricorsiva

    Ciao a tutti, devo fare una f.ne ricorsiva che somma gli elementi strettamente positivi di un vettore.

    il prototipo della f.ne è:

    int sum(int tab[N], int dim);


    nn ho ancora capito bene la ricorsione......
    Debian Sarge 3.01a
    Slackware 10.2

  2. #2
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    io avrei elaborato questa soluzione (che n funziona):

    codice:
    int sum(int tab[], int dim){
     if (dim==0)
        return 0;
      if (tab[dim]>0)
       return tab[0]+sum(tab,dim-1);       
    }
    scusate ma nn mi andava il CODE
    Debian Sarge 3.01a
    Slackware 10.2

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    dim indica la dimensione, quindi gli lementi del vettore vanno da 0 a dim-1. din inizialmente indica la dimensine effettiva, menter nelle chiamate ricorsive indica il prossimo indice da considerare. Ad ogni chiamata l'indice viene decrementato e quando è diventatno zero significa che tutte le posizioni del vettore sono state esaminate. Se l'elemento corrente è positivo lo sommi al resto della somma, se no ritorni solo il resto della somma:

    codice:
    int sum(int tab[], int dim){
     if(dim == 0)
        return 0;
      if(tab[dim - 1] > 0)
       return tab[dim - 1] + sum(tab, dim - 1);
      else sum(tab, dim - 1);
    }

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    grazie....ero riuscito a farlo... dopo posto la mia soluzione.
    è un attimo diversa perchè non ho messo il 3° else!!!

    grazie comunque anx721!!!
    Debian Sarge 3.01a
    Slackware 10.2

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    nell'ultima istruzione ho dimenticato ilreturn:

    codice:
    int sum(int tab[], int dim){
     if(dim == 0)
        return 0;
      if(tab[dim - 1] > 0)
       return tab[dim - 1] + sum(tab, dim - 1);
      else return sum(tab, dim - 1);
    }

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.