Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c] problema con funzione

    ciao a tutti, ho messo il pezzo di programma che mi interessa...allora io ho una funzione che mi calcola la media, funziona. Ad esempio mi da 9,2. Ad un certo punto del codice mi chiamo la funzione e a media(controllato con il watch) c'è 9.2.
    ma quando faccio l'operazione con m2,m2 mi resta 9.2 perché?
    codice:
    .
    .
    .
    float media;
        media  = med(v);
        float m2 = media + 2;
    }
    
    float med(float v1[])
    {
        float media;
        int i;
        for(i = 0; i < N; i++)
        {
            media += v1[i];
        }
        media = media / N;
        return media;
    }

  2. #2
    Ho riletto il post tre volte e ancora non ci capisco niente... non puoi essere un po' più chiaro?
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Intanto nella funzione deve essere

    float media=0;

    Per il resto spiegati meglio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    ok ci provo :
    codice:
    int main()
    {
        float v[10]  <------- in questo vettore ci sono 10 float
        float media = 0;
        float m2 = 0;
        media = med(v);  <------ richiamo la funzione per calcolarmi la media dei 10 numeri
        m2 = media + 1.8;
        return 0;
    }
    la funzione med(v) funziona perché ho constatato che mi restituisce la media dei 10 numeri e la media è 9.2;
    faccio m2 = media + 1.8;
    ora m2 dovrebbe essere uguale a 11 ma mi rimane sempre 9.2, perché?

  5. #5
    problema risolto, dovevo mettere float media = 0, grazie mille

  6. #6
    Ricordati sempre che in C se non inizializzi una variabile esplicitamente questa parte con un valore indefinito (al primo giro magari potrebbe essere zero, per poi essere qualcos'altro).
    Amaro C++, il gusto pieno dell'undefined behavior.

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.