Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    [c] passaggio per parametro

    ho l'esame di inf1 sulle liste:
    definisco la lista:
    codice:
    struct listelem {char dato; struct listelem *prossimo;};
    typedef struct listelem ELEMLIST;
    typedef ELEMLIST *LISTADIELEM;
    typedef LISTADIELEM *PUNTALIST;
    ed ho una funzione che mi fa la media e mi calcola il max:
    codice:
    funzione_doppia(LISTADIELEM lista)
    {
    int i=1,cont=0,med,somma=0,max,min;
    ELEMLIST *cursore;
    cursore=lista;
    max=cursore->dato;
    min=cursore->dato;
    while(cursore!=NULL)
    {
    cursore=cursore->prossimo;
    i=i+1;
    somma=somma+cursore->dato;
    cont=cont+1;
    
    	if(cursore->dato<min)
    		{ min=cursore->dato;}
    	if(cursore->dato>max)
    		{ max=cursore->dato;}
    }
    med=somma/cont;
    	
    }
    come si fa a restituire per parametro?
    cioé credo da queste parti:
    funzione_doppia(LISTADIELEM lista<<<da queste parti credo>>>)

  2. #2
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    main ()
    {

    TipoDato pippo;

    funzione(&pippo);

    }

    funzione(TIpoDato* pippa)
    {

  3. #3
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    //continuo qui
    }

    fnzione(TipoDato* pippa)

    *pippa =valore da restituire;


    }

    pippo nel main conterrā il valore assegnato a pippa

    Spero di aver capito la domanda

  4. #4
    si..ci ho provato anche io..
    ma il mio prof(un rin****o) vuole che il risultato della funzione sia restituito come parametro della funzione stessa..
    boh

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    E da quel che vedo ti hanno appena detto come si fa.


    Ciao.
    "Perchč spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6

  7. #7
    solo una cosa..
    ma come faccio a differenziare i dati che servono per far partire la funzione con quelli che devono essere restituiti?
    come dovrei fare nel mio caso?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Nessuno ti vieta che i dati che servono alla funzione per lavorare siano gli stessi che poi tornano al chiamante (pensa ad una funzione che ordina un vettore: lavora sul vettore e lo ritorna ordinato).

    Ad ogni modo, se proprio vuoi "differenziarli", puoi duplicarli: costringi il chiamante a passare il dato due volte, uno verrā usato come "copia lavoro" e l'altro conterrā il valore di ritorno.


    Ciao.
    "Perchč spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    grazie solo na cosa:
    ma nella mio caso specifico..come faccio?
    function(solo quello che va qui dentro voglio sapere)

  10. #10
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,035
    Fammi capire, hai una funzione che scorre la lista e deve calcolarne la somma e la media?
    In pratica sei in dubbio sul passaggio dei parametri alla funzione? In quel caso, dovendo soltanto scorrerla e non dovendo apportare modifiche nč ai parametri locali alla funzione, nč alla lista originale puoi sfruttare l'efficenza di una chiamata per riferimento con la sicurezza di una per valore usando un puntatore a dati costanti...

    Non ho capito niente vero?

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.