package com.codegym.task.task05.task0507;
/*
Arithmetic mean
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
//write your code here
Reader read = new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(read);
int b = 1;
int d = 0 ;
int i = 0 ;
double e =0;
double c = 0;
while (0<b)
{
String s = buff.readLine();
int a = Integer.parseInt(s);
if (a == -1)
break;
else
{
d = d + a ;
i++;
}
}
c = d/i;
e = d%i;
e = (e/i);
System.out.println(c+e);
}
}
please help me with this
Under discussion
Comments (4)
- Popular
- New
- Old
You must be signed in to leave a comment
Brandon Leirer
2 June 2020, 22:19
That code looks to be massively overcomplicated. Without giving away an answer too much, I will give some tips.
1) the Scanner function is capable of reading numbers. It is much more efficient to use it than InputStreamReader in this situation. (InputStreamReader and BufferedReader excel when reading a whole file at once).
2) You wrote out variables to hold every step of the math when it is not essential.
You only need an: int number- to hold the number input from the user, a double sum- to hold the sum of the numbers and a int counter- to keep a tally of how many numbers have been entered. (that number will be used later to divid by to get the mean).
0
Corto
14 August 2019, 23:50
0
Koniasz
4 July 2019, 23:16
Maybe this will help:
while(true) {
int entryNumber = Integer.parseInt(reader.readLine());
sum += entryNumber;
count++;
if (entryNumber == -1)
break;
}
0
Roman
21 August 2018, 09:30
Try to enter only -1, the program must correctly terminate.
0