Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Funzione ricorsiva
Forum - C/C++ - Funzione ricorsiva

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 13:13
Domenica, 06/06/2010
sono arrivato al mio libro alle funzioni ricorsive. Non riesco a capire perchè questo programma non funziona !

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. int roll (int y);
  4.  
  5. int main(void)
  6. {
  7.         int x = 2;
  8.         printf ("%d", x);
  9.         roll(x);
  10.         return 0;
  11. }
  12.  
  13. int roll (int y) {
  14.         printf("%d",roll(y - 1));
  15.         return 0;
  16. }



L'output dovrebbe essere:
Codice sorgente - presumibilmente Plain Text

  1. $./avvio
  2. 2
  3. 1

ma esce fuori appena compilo:
Segmentation fault

PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 13:48
Domenica, 06/06/2010
prova a dichiararla procedura non funzione:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. void roll (int y);
  4.  
  5. int main(void)
  6. {
  7.     int x = 2;
  8.     printf ("%d", x);
  9.     roll(x);
  10.     return 0;
  11. }
  12.  
  13. void roll (int y) {
  14.     printf("%d",roll(y - 1));
  15. }



PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 13:59
Domenica, 06/06/2010
si ma io voglio farlo con un return :asd:

edit:
compilando il tuo sorgente esce questo messaggio:

Codice sorgente - presumibilmente C/C++

  1. funzione.c: In function ‘roll’:
  2. funzione.c:14: error: invalid use of void expression


Ultima modifica effettuata da gforce il 06/06/2010 alle 14:01
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:00
Domenica, 06/06/2010
Testo quotato

Postato originariamente da carmine:

prova a dichiararla procedura non funzione:
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2.  
  3. void roll (int y);
  4.  
  5. int main(void)
  6. {
  7.     int x = 2;
  8.     printf ("%d", x);
  9.     roll(x);
  10.     return 0;
  11. }
  12.  
  13. void roll (int y) {
  14.     printf("%d",roll(y - 1));
  15. }





Carmine non dire queste ciaffate se non sai le cose

PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 14:02
Domenica, 06/06/2010
tu sai la soluzione d@vide ?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:05
Domenica, 06/06/2010
prova cosi..

Codice sorgente - presumibilmente C++

  1. #include  <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int x = 2;
  6.     printf("%d\n%d\n", x,roll(x));
  7.    
  8.    
  9.    
  10. }
  11.  
  12. int roll(int y) {
  13.     int x = 0;
  14.     x = y - 1;
  15.     return x;
  16.    
  17. }


fammi sapere :k:

PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 14:11
Domenica, 06/06/2010
Testo quotato

Postato originariamente da carlduke:

prova cosi..

Codice sorgente - presumibilmente C++

  1. #include  <stdio.h>
  2.  
  3. int main()
  4. {
  5.     int x = 2;
  6.     printf("%d\n%d\n", x,roll(x));
  7.    
  8.    
  9.    
  10. }
  11.  
  12. int roll(int y) {
  13.     int x = 0;
  14.     x = y - 1;
  15.     return x;
  16.    
  17. }


fammi sapere :k:


si funziona, ma io la voglio ricorsiva, e questa non è ricorsiva :nono:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:42
Domenica, 06/06/2010
xd....giusto...nnn avevo visto..Lol :rotfl::rotfl:

PM Quote
Avatar
gforce (Normal User)
Rookie


Messaggi: 33
Iscritto: 21/01/2010

Segnala al moderatore
Postato alle 14:52
Domenica, 06/06/2010
Testo quotato

Postato originariamente da carlduke:

xd....giusto...nnn avevo visto..Lol :rotfl::rotfl:


la sai fare ricorsiva ?

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo