class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
float numbers = 0;
int a = 1;
System.out.println("Введите длинну массива");
int l = Integer.parseInt(br.readLine());
int[] array = new int[l];
System.out.println("Наполняем массив и выводим среднеарифмитическое: ");
while (true) {
for (int i = 0; i < l; i++) {
array[i] = Integer.parseInt(br.readLine());
if (i == -1)
break;
numbers = numbers + i;
a++;
}
System.out.println(numbers / (a - 1));
//напишите тут ваш код
}
}
}
Рустем
7 уровень
Решил слегка усложнить задачу, а именно: задаем массив, считываем с клавиатуры, дальше считаем среднее арифметическое. Вроде и считает, но как то не так, поможите плиз.
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
29 ноября 2019, 10:44
if (i == -1)
numbers = numbers + i;
i - это индекс. Поэтому у тебя результат не зависит от вводимых чисел
0
Рустем
29 ноября 2019, 10:50
окончательно запутался) т.е. получается он считает индексы из массива а не вводимые значения?
Возможно тогда сначала заполнить массив потом считать среднее?
0
Ksenia Volkova Java Developer в DXC Master
29 ноября 2019, 10:53
Для начала нужно заменить i на array[i] =)
0
Рустем
29 ноября 2019, 11:13
int i = 0;
while (true) {
for (int b = 0; b < l; b++) {
array[i] = Integer.parseInt(br.readLine());
if (i == -1)
break;
numbers = numbers + array[i];
a++;
}
Добавил переменную перед циклом, внутри поменял на array[i]. Считать начал, но все равно не то. Крыша уже едет)
0
Ksenia Volkova Java Developer в DXC Master
29 ноября 2019, 11:20
Зачем ты вынес i? это же был твой счетчик в цикле.
Теперь i вообще ни о чем, а вместо него b.
Ты ведь именно по счетчику получаешь нужный элемент из массива.
0
Рустем
29 ноября 2019, 13:04
переделал вот так, все равно не работает, хоть стреляйте))
class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
float numbers = 0;
int a = 0;
System.out.println("Введите длинну массива");
int l = Integer.parseInt(br.readLine());
int[] array = new int[l];
System.out.println("Наполняем массив и выводим среднеарифмитическое: ");
while (true)
{
for (int i = 0; i < l; i++)
{
int r = Integer.parseInt(br.readLine());
if (r == -1)
{
break;
}
else
{
array[i] = r;
}
numbers = numbers + array[i];
a++;}
System.out.println(numbers/(a -1));
//напишите тут ваш код
}
}
}
0
Ksenia Volkova Java Developer в DXC Master
29 ноября 2019, 13:52
Почему не работает? Почти работает.
Непонятно только, зачем ты отнимаешь 1 от а в конце.
Ну и если ты хочешь вычислять среднее арифметическое в бесконечном цикле, то нужно переменные а и numbers в начале этого цикла обнулять
0