Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36

Discussione: [c] ricorsione

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92

    [c] ricorsione

    Raga qlk di voi potrebbe dirmi come si posso modificare questa ricorsione in modo ke mi termini dopo 17 chiamate?


    #include <stdio.h>

    int main(void)
    {
    printf(" the universe is ending!! ");
    main();
    return 0;
    }

    Non so come mai, ma in questo caso nn finisce + di scrivere
    the universe is ending!! .

    Ps. scusate ma sono agli inizi



    Peppe...

  2. #2
    codice:
    #include <stdio.h>
    
    unsigned int cnt = 0;
    
    int main(void)
    {
    	printf(" the universe is ending!! ");
    	if(++cnt == 17)
    	{
      		return 0;
    	}
    	else
    	{
      		main();
    	}
    	return 0;
    }
    Ho provato


    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    unsigned int cnt = 0;
    Xkè?

  4. #4

    Re: [c] ricorsione

    Originariamente inviato da Peppewt
    Raga qlk di voi potrebbe dirmi come si posso modificare questa ricorsione in modo ke mi termini dopo 17 chiamate?


    #include <stdio.h>

    int main(void)
    {
    printf(" the universe is ending!! ");
    main();
    return 0;
    }

    Non so come mai, ma in questo caso nn finisce + di scrivere
    the universe is ending!! .

    Ps. scusate ma sono agli inizi



    Peppe...
    una ricorsione con la funzione main() ? mai vista :gren:
    Cmq tutto si puo' fare e quindi ecco come puo' essere richiamata n volte(in questo caso 17) :
    codice:
    #include <stdio.h>
    int i=1;
    
    int main(void)
    {
    printf(" the universe is ending!! ");
    if ( i == 17 ) return 0;
      else { 
             i++;
             main(); 
           }
    }
    CIAO...provala fammi sapere

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    Originariamente inviato da Peppewt
    unsigned int cnt = 0;
    Xkè?
    ha dichiarato un contatore di tipo intero.
    Una variabile cioè incrementata ad ogni passo per conteggiare le chiamate ricorsive effettutate.
    Unsigned anche se non lo metti è lo stesso...indica che quella variabile è un intero SENZA SEGNO appunto(quando scrivi int è sottointeso SIGNED)



    ps cmq se sei alle prime armi puoi utilizzare il mio che lo capisce subito
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    Originariamente inviato da andrea_NET-_DSL
    [saibal]
    ps cmq se sei alle prime armi puoi utilizzare il mio che lo capisce subito [/saibal]
    il mio non è corretto?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  7. #7
    Originariamente inviato da Peppewt
    unsigned int cnt = 0;
    Xkè?
    perche (+)17 è un intero senza segno quindi nn vedo perche dovrei usare signed int( == int) se so gia che il valore sara senza segno.


    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #8
    Originariamente inviato da Luc@s
    il mio non è corretto?
    certo
    dicevo perchè avendo detto che è alle prime armi il mio risulta + semplice

    Infatti non capiva unsigned(spiegato sopra) e quel ++cnt.


    ++cnt incrementa il contatore cnt non valutando il valore precedente:cioè fà "passare" cnt da 0 a 1 senza far "valutare" al programma 0 e cosi' via.

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    Originariamente inviato da andrea_NET-_DSL
    [saibal]

    ++cnt incrementa il contatore cnt non valutando il valore precedente:cioè fà "passare" cnt da 0 a 1 senza far "valutare" al programma 0 e cosi' via.

    [/saibal]
    in poche parole prima incrementa e poi visualizza al contrario del var++(usato da te) che prima visualizza e poi incrementa.

    Cmq io sono uno molto sintetico :gren:
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  10. #10
    Originariamente inviato da Luc@s
    in poche parole prima incrementa e poi visualizza al contrario del var++(usato da te) che prima visualizza e poi incrementa.

    Cmq io sono uno molto sintetico :gren:
    sisi bel codice ...molto compatto

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.