Somma e media in c

di il
6 risposte

Somma e media in c

Salve ragazzi io devo fare un programma per la somma e media...
Io l'ho fatto:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//Somma e media tra due numeri
int main(void) {
int a,b,s;
float m;
printf("Inserisci il primo numero.\n ");
scanf("%d", &a);
printf("Inserisci il secondo numero.\n ");
scanf("%d", &b);
s=a+b;
m=(a+b)/2;
printf("La somma e' %d.\n", s);
printf("La media e' %f.\n", m);
system ("PAUSE");
return(0);

}
L'unico problema è che se lo avvio, metto per esempio 5 e 4, la somma è 9 (quindi giusta) ma la media dice che è 4.00000 (quindi senza parte decimale)... come mai? Eppure l'ho dichiarata come float e %f nel printf..

6 Risposte

  • Re: Somma e media in c

    Prova a scrivere

    m=(a+b)/2.0;
  • Re: Somma e media in c

    oregon ha scritto:


    Prova a scrivere

    m=(a+b)/2.0;
    Ok funziona.. due domande: come mai 2.0 e non 2? E poi, perchè esce 4.50000 anzichè 4.5?
  • Re: Somma e media in c

    Scorpion1010 ha scritto:


    oregon ha scritto:


    Prova a scrivere

    m=(a+b)/2.0;
    Ok funziona.. due domande: come mai 2.0 e non 2? E poi, perchè esce 4.50000 anzichè 4.5?
    Senza 2.0 il risultato viene troncato, mentre con 2.0 viene interpretato come float. Per stampare 4.5 senza tutti i decimali devi modificare la printf così:
    printf("La media e' %.1f.\n", m);
    Così ti stampa solo il primo decimale.

    Se invece scrivi :
    printf("La media e' %.2f.\n", m);
    ti stampa i primi due e così via...
  • Re: Somma e media in c

    CarDeFusco ha scritto:


    Scorpion1010 ha scritto:


    oregon ha scritto:


    Prova a scrivere

    m=(a+b)/2.0;
    Ok funziona.. due domande: come mai 2.0 e non 2? E poi, perchè esce 4.50000 anzichè 4.5?
    Senza 2.0 il risultato viene troncato, mentre con 2.0 viene interpretato come float. Per stampare 4.5 senza tutti i decimali devi modificare la printf così:
    printf("La media e' %.1f.\n", m);
    Così ti stampa solo il primo decimale.

    Se invece scrivi :
    printf("La media e' %.2f.\n", m);
    ti stampa i primi due e così via...
    Ok grazie... come chiudo il post?
  • Re: Somma e media in c

    Al massimo metti [Risolto] nel titolo.
  • Re: Somma e media in c

Devi accedere o registrarti per scrivere nel forum
6 risposte