Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema media

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    17

    problema media

    Uno dei primi esercizi che feci a settembre ..il professore vuole che consegni i miei 40 esercizi,quindi andando a controllare un po' gli esercizi vecchi scopro questo errore e sono un po' bloccato a un esercizio banalissimo...eppure la media aritmetica non gira...non capisco.. la variabile media lo dichiarata float quindi anche fosse una media con la virgola dovrebbe darmela ma aimè non è così...


    codice:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package Esercizi_3A_info;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    /**
     *
     * @author XXX
     */
    public class Esercizio005 {
    
        public static void main(String args[]) throws IOException {
            int intero1;
            int intero2;
            int intero3;
            int intero4;
            int maggiore;
            int minore;
            float media;
            String risposta;
    
            InputStreamReader inReader = new InputStreamReader(System.in);
            BufferedReader reader = new BufferedReader(inReader);
    
            System.out.println("inserisci il primo intero");
            risposta = reader.readLine();
            intero1 = Integer.parseInt(risposta);
    
            System.out.println("inserisci il secondo intero");
            risposta = reader.readLine();
            intero2 = Integer.parseInt(risposta);
    
            System.out.println("inserisci il terzo intero");
            risposta = reader.readLine();
            intero3 = Integer.parseInt(risposta);
    
            System.out.println("inserisci il quarto intero");
            risposta = reader.readLine();
            intero4 = Integer.parseInt(risposta);
            
           
    
            if (intero1 > intero2) {
                maggiore = intero1;
            } else {
                maggiore = intero2;
            }
            if (intero3 > maggiore) {
                maggiore = intero3;
            }
            if (intero4 > maggiore) {
                maggiore = intero4;
            }
    
            System.out.println("Il numero maggiore tra gli interi inseriti è\n" + maggiore);
    
            if (intero1 < intero2) {
                minore = intero1;
            } else {
                minore = intero2;
            }
            if (intero3 < minore) {
                minore = intero3;
            }
            if (intero4 < minore) {
                minore = intero4;
            }
    
            System.out.println("Il numero minore tra gli interi inseriti è\n" + minore);
            media = (intero1 + intero2 + intero3 + intero4) / 4;
            System.out.println("La media tra gli interi inseriti è\n" + media);
            
    
        }
    }

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    codice:
    media = (intero1 + intero2 + intero3 + intero4) / 4;
    Stai sommando interi e il risultato lo dividi per un intero. Il risultato di tutto sarà un intero (e verrà troncata quindi la parte decimale).

    Dividi per 4f.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    17
    Originariamente inviato da Alex'87
    Stai sommando interi e il risultato lo dividi per un intero. Il risultato di tutto sarà un intero (e verrà troncata quindi la parte decimale).

    Dividi per 4f.
    perfetto ti ringrazio..pensavo che uscendo un numero decimale non troncasse...

    nozione utile per le prossime volte grazie mille

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    3
    in alternativa potresti anche usare il casting:

    codice:
    media = (float) (intero1 + intero2 + intero3 + intero4) / 4;

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    codice:
    media = (float)  (intero1 + intero2 + intero3 + intero4) / 4 ;
    tu vuoi castare a float la somma o il risultato? perché se è la somma va bene così, in caso contrario mancano parentesi. Attenzione anche col risultato perché dici di scrivere il risultato di una divisione intera in un float (ma il resto lo hai cmq perso).

    Tra le due soluzioni opterei per fare il tutto in 2 passaggi:

    codice:
    media = 0; // prima del ciclo 
    
    media += intero; // durante il ciclo 
    
    media /= 4; // alla fine qui ho il valore della media
    in tutto questo ho sempre sfruttato l'upcasting.
    RTFM Read That F*** Manual!!!

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.