calculați media cu datele introduse de utilizator

Scriu un program pentru a calcula media cu datele introduse de utilizator.

import java.util.Scanner;
public class mean
{   
    static Scanner input = new Scanner (System.in);
    public static void main (String[] args)
    {
    double i;
    double sum = 0;
    int count = 0;
    do
    {
        System.out.println("input");
        i = input.nextDouble();
        sum = sum + i;
        count++;
    }while (i != 0);
    System.out.println("sum is " + sum + " count is " + (count - 1));
    System.out.println("average is " + sum/(count - 1));
}
}

aici dacă am introdus 0, se va calcula. dar dacă există 0s în listă. poate cineva să mă conducă o condiție mare în timp?

0

2 răspunsuri

S-ar putea să întrebați scanerul dacă următorul token pe care le citește scanerul este sau nu dublu și dacă nu este. Exemplul de mai jos:

import java.util.Scanner;
public class mean
{   
    static Scanner input = new Scanner (System.in);
    public static void main (String[] args)
    {
    double i;
    double sum = 0;
    int count = 0;
    while(input.hasNextDouble())
    {
        System.out.println("input");
        i = input.nextDouble();
        sum = sum + i;
        count++;
    }
    System.out.println("sum is " + sum + " count is " + (count));
    System.out.println("average is " + sum/(count));
}
}

Dacă utilizatorul introduce un caracter non-numeric (de exemplu, nu '+', '-', 0-9, '.' Etc.), bucla se va rupe deoarece input.hasNextDouble() return false.

0
adăugat
O soluție foarte bună, cu toate acestea, există o problemă cu codul original în care ar trebui să împărțiți prin numărătoarea nu conta-1, deoarece numărul a început la 0.
adăugat autor LINEMAN78, sursa

instead of sum = sum + i an easier way would be sum += i

0
adăugat