Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156

    [C] Divisione tra interi con risultato float

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    void polifunz(float a,float b,float c,float *max, float *min, float *media);
    main()
    {
          float M,m;
          float med,x1,x2,x3;
          printf("Inserire i tre valori dei quali si voglio conoscere \n il massimo il minimo e la media\n");
          scanf("%f%f%f", &x1,&x2,&x3);
          polifunz(x1,x2,x3,&M,&m,&med);
          printf("Il valore massimo e'\n %f\n, il minimo e' %f\n, la media e' %f \n", M,m,med);
          system("pause");
    }
    
    void polifunz(float a,float b,float c,float *max, float *min, float *media)
    {
         if(b>a && b<c) {*min=a; *max=c;}
         if(c>a && c<b) {*min=a; *max=b;}
         if(a>c && a<b) {*min=c; *max=b;}
         if(b>c && b<a) {*min=c; *max=a;}
    
         if(a>b && a<c) {*min=a; *max=c;}
         if(c>a && c<a) {*min=b; *max=c;}
         *media=(a+b+c)/3;
    }
    Il seguente programma calcola il minimo, il massimo e la media di tre numeri.
    Come potrei fare per evitare di dichiarare tutte le variabili float senza avere problemi nel calcoo della media finale e senza fare casting esplicito?

  2. #2
    Usa 3.f invece di 3: l'uso la f finale specifica che si tratta di una costante di tipo float, per cui verrà effettuata una divisione su float.
    D'altra parte, conviene usare i float (anzi, meglio i double) già nella somma, per evitare potenziali overflow.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156
    Ho cambiato i tre valori di ingresso, il massimo e il minimo in int e poi ho messo 3.f anzichè 3 nel calcolo nella media ma mi restituisce valori sballati! A cosa può essere dovuto?

  4. #4
    Posta il nuovo codice.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cioè? Adesso qual è il codice? Mostralo con tutte le modifiche e indica con precisione cosa intendi per valori sballati ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    156
    Nella printf avevo messo specificato l'intero della media per sbaglio! Ora va bene. Grazie per l'interessamento!

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.