Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: C Test ricorsione ..

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56

    C Test ricorsione ..

    ..sanamente copiato non mi da risultato... a parte il warning: no newline at end of file !

    Immagino che il problema sia nel main...però non lo vedo !!!
    Grazie.


    codice:
    
          #include <stdio.h>
    
         void printd(int n);
               
    
          main()
    
    {
            int n = 123 ;
            printd( n);
           return 0 ;
    }
    
      
    void printd(int n)
    
    {
              if (n < 0)
         {
                putchar('-');
                n = -n;
         }
    
        if (n / 10)
            
        printd(n / 10);
    
        putchar(n % 10 + '0');    
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    sai cosa deve fare il programma? risultato atteso? Già lo hai copiato e chiedi a noi di capirne la logica, almeno tu ci hai messo mano?
    RTFM Read That F*** Manual!!!

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Originariamente inviato da valia
    sai cosa deve fare il programma? risultato atteso? Già lo hai copiato e chiedi a noi di capirne la logica, almeno tu ci hai messo mano?
    Infatti
    Chi legge il thread non sa qua'è il risultato atteso.

    Per il warning basta andare a capo riga alle fine del file e salvarlo (questo dipende dal compilatore).

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56
    Avete ragione ..ma vedo che capite dei post a me poco comprensibili ...
    Cerco di capire come funziona la ricorsione prendendo esempi da
    http://cg.inf.unideb.hu/eng/rtornai/...Language_C.pdf .
    Avevo capito che se per esempio ci sono tre ricorsioni consecutive ,queste vanno in esecuzione
    cosi : terzultima > penultima >ultima . Nell 'esempio , se faccio stampare 123 viene stampato 321...
    Il mio libro tradotto in italiano mi dice che la ricorsione diventa cosi un metodo per girare le cifre al
    posto di girare le cifre in un vettore .
    Ora al programma se gli do 123 ...mi stampa 123 e cade la teoria del libro italiano !
    Boh.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sono confuso ...

    La domanda qual è?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ma prova a scrivere tu il programma anziché copiarlo!!!
    Sono programmi di esempio e ce ne sono tanti errati, se vuoi debuggarlo fallo tu, ma mica puoi chiedere a noi perchè non funzoina l'esempio del tuo libro!!
    RTFM Read That F*** Manual!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da oregon
    Sono confuso ...

    La domanda qual è?
    perché in quel programma con input 123 ottengo 123 e non 321
    RTFM Read That F*** Manual!!!

  8. #8
    Originariamente inviato da roldo
    cosi : terzultima > penultima >ultima . Nell 'esempio , se faccio stampare 123 viene stampato 321...
    Il mio libro tradotto in italiano mi dice che la ricorsione diventa cosi un metodo per girare le cifre al
    posto di girare le cifre in un vettore .
    Ora al programma se gli do 123 ...mi stampa 123 e cade la teoria del libro italiano !
    Ma 123 è giusto... non credo intenda "girare" nel senso di "stampare in senso inverso", forse è solo un (brutto) sinonimo utilizzato al posto di "ciclare" (anch'esso brutto). Infatti, nell'esempio, non è un ciclo che stampa le varie cifre, ma la routine ricorsiva.

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    56
    Originariamente inviato da ESSE-EFFE
    ........ Infatti, nell'esempio, non è un ciclo che stampa le varie cifre, ma la routine ricorsiva.
    Infatti io volevo capire l' effetto della recursione. Da pagina 115 dello stesso libro si ordinano
    delle parole con la tecnica dei nodi a destra e sinistra e la stampa perfeziona l ' ordinamento con la
    ricursione sotto, grazie al fatto che il codice viene eseguito in modo inverso alla chiamata
    Sono a posto , grazie.
    codice:
    /* treeprint: in-order print of tree p */
    void treeprint(struct tnode *p)
    {
            if (p != NULL) 
       {
            treeprint(p->left);
            printf("%4d %s\n", p->count, p->word);
            treeprint(p->right);
       }
    }

  10. #10
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Occhio ai termini, ho capito cosa intendi ma:
    "il codice viene eseguito in modo inverso alla chiamata"
    Non è il modo corretto di dirlo, non credo nemmeno che abbia senso come frase.

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.