Redefinizione tipo variabile

di il
4 risposte

Redefinizione tipo variabile

Ciao a tutti,

quesito stupido...

nel calcolare la media, dichiarando 2 variabili int a e b ed 1 variabile float media
non ottengo il risultato corretto se procedo facendo media=(a+b)/2
int main (void)
{   
    int a,b;
    printf("Calcolo la media di 2 valori\n");
    printf("Inserisci il primo numero: ");
    scanf("%d",&a);
    printf("\nInserisci il secondo numero: ");
    scanf("%d",&b);
    printf("la media tra %d e %d è %.2f",a,b,media(a,b));    
}

float media (int x, int y)
{
    float m;
    m=(x+y)/2;
    return m;
}
praticamente mi ritorna il valore intero, anche se stampo %.2float, aggiunge solamente gli zeri dopo l'intero.
non ricordo il modo di ridefinire il tipo di valore, oppure devo dichiarare come float anche a b ???

4 Risposte

  • Re: Redefinizione tipo variabile

    Et voila!
    
    m = (float)(x+y) / 2;
    
    oppure
    
    m = (x+y) / 2.0;
    
    L' importante è indicare al compilatore che non è una divisione tra interi (se poi usi il tipo double meglio ancora).
  • Re: Redefinizione tipo variabile

    Ah ecco!! le avevo provate quasi tutte!!!
    avevo scritto m =(float(x+y))/2
    ma non mi andava...
    grazie mille !!!
  • Re: Redefinizione tipo variabile

    Se stai usando un compilatore C++ la forma che hai usato
    
    m =(float(x+y))/2
    
    è corretta e deve funzionare. Se invece usi un compilatore C, darà un errore di compilazione.
  • Re: Redefinizione tipo variabile

    Infatti, programmo in C con Xcode...
Devi accedere o registrarti per scrivere nel forum
4 risposte