Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] funzione ricorsiva

  1. #1
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892

    [C] funzione ricorsiva

    Buongiorno, è da 2 giorni che provo a fare questa funzione:

    Si definisca una procedura ricorsiva con prototipo void pippo() che legge dalla standard input una sequenza di interi che termina con 0 e ne stampa in ordine inverso rispetto all'input gli elementi strettamente negativi.


    Ho provato a farlo, con l'iterazione mi viene ma con la ricorsione niente da fare. Proprio non mi entra in testa !!!

    Chi mi sa aiutare a farla? grazie
    Debian Sarge 3.01a
    Slackware 10.2

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Eccola

    codice:
    #include<stdio.h>
    
    void pippo(){
        int n;
        scanf("%d", &n);
        if(n == 0)
            return;
        pippo();
        if(n < 0)
            printf("%d ", n);
    }

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    grazie per la risposta ultraveloce....ma me la deve stampare al contrario questa sequenza con quelle caratteristiche...
    è proprio lì che mi blocco...non so come fare...!

    Debian Sarge 3.01a
    Slackware 10.2

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Infatti la funzione quando termina ti stampa tutti i numeri negativi nell'ordine inverso rispetto a quello con cui sono stati inseriti ...basta mettere la chiamata ricorsiva prima dell'istruzione di stampa per avere i numeri al contrario

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    grazie anx!!! scusami....ho le fette di salame sugli occhi ormai...è da un mese e mezzo che sono stressato per gli esami e ormai non ce la faccio più.

    ah un altra cosa: quando ho 2 variabili dello stesso tipo e un assegnamento cosa mi restituisce var1=var2 ????
    La mia risposta sarebbe: niente! Questo è solo un comando di assegnamento che assegna il valore di var2 a var 1.

    La tua risposta quale sarebbe?
    Debian Sarge 3.01a
    Slackware 10.2

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Non è che restituisce qualkosa...pero nell'ambito di un 'espressione

    var1 = var2;

    viene valutata come il valore che ha var1 dopo l'assegnamento, ad esempio:

    codice:
    int m(){
    	int a = 0;
            int b = 2;
    	return a = b;
    }
    la funzione m ritorna 2 che è il valore assegnato a var1

    oppure

    codice:
    int m(){
    	int a = 0;
            int b = 2;
    	if(a = b)
                 printf("ciao");
    }
    l'istruzione di stampa viene eseguita perche ad 'a' viene assegnato il valore 2 e l'assegnamento 'a = b' ritorna il valore della variabile assegnata.

    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.