Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.06.2019
Сообщений: 2

Ошибка при работе с массивом

27.06.2019, 04:25. Показов 667. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я только начинаю разбираться в Java и в связи с этим, у меня возникли некие сложности и проблемы с программой. Вся суть того, что программа выполняет расчёт и находит min/max массива, средние арифм и геометр значения, но что-то пошло не так и расчёты просто на просто не выполняются. Поскольку я в этом деле новичок, у меня возникла паника. Пожалуйста укажите, где была допущена ошибка(и). Заранее большое спасибо.)))
Язык Java
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
package com.company;
 
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class Main
{
    public static int FindMinimum(int[] entities)
    {
        int minimum = Integer.MAX_VALUE;
 
        if (entities == null || entities.length == 0)
        {
            return minimum;
        }
 
        for (int j : entities)
        {
            minimum = Math.min(minimum, j);
        }
        return minimum;
    }
 
    public static int FindMaximum(int[] entities)
    {
        int maximum = Integer.MIN_VALUE;
 
        if (entities == null || entities.length == 0)
        {
            return maximum;
        }
 
        for (int j : entities)
        {
            maximum = Math.max(maximum, j);
        }
 
        return maximum;
    }
 
    public static double FindAverage(int[] entities)
    {
        int valueAverage = 0;
 
        if (entities == null || entities.length == 0)
        {
            return valueAverage;
        }
 
        for (double j : entities)
        {
            valueAverage += j;
        }
 
        return (double) valueAverage / entities.length;
    }
 
    public static double FindMedian(int[] entities)
    {
        if (entities == null || entities.length == 0)
        {
            return 0;
        }
 
        int[] copyEntities = entities.clone();
        Arrays.sort(copyEntities);
 
        if (copyEntities.length % 2 == 0)
        {
            return ((copyEntities[copyEntities.length / 2] + copyEntities[copyEntities.length / 2 - 1]) / 2f);
        }
 
        return copyEntities[copyEntities.length / 2];
    }
 
    public static double FindGeometricAverage(int[] entities)
    {
        if (entities == null || entities.length == 0)
        {
            return 0;
        }
 
        double multiplication = 1f;
        for (double j : entities)
        {
            if (j == 0)
            {
                return 0;
            }
            else
            {
                multiplication *= j;
            }
        }
 
        if (multiplication < 0 && entities.length % 2 == 0)
        {
            return 0;
        }
        if (multiplication < 0 && entities.length % 2 != 0)
        {
            return -(Math.pow(Math.abs(multiplication), 1d / entities.length));
        }
        return (Math.pow(multiplication, 1d / entities.length));
    }
 
    public static int[] InputArray()
    {
        while (true)
        {
            try
            {
                System.out.print("Введите количество цифр: ");
                Scanner input = new Scanner(System.in);
                int lengthArray = input.nextInt();
 
                int[] array = new int[lengthArray];
 
                int i = 0;
                while (i < lengthArray)
                {
                    Scanner symInput = new Scanner(System.in);
                    System.out.print("Введите значение: ");
                    String tempInput = symInput.nextLine();
                    try
                    {
                        int temp = Integer.parseInt(tempInput);
                        array[i] = temp;
                        i++;
                    }
                    catch (NumberFormatException e)
                    {
                        System.out.println("\tОшибка, Введено не численное значение!");
                    }
                }
 
                return array;
            }
            catch (NegativeArraySizeException e)
            {
                System.out.println("\tОшибка, длина массива не может быть отрицательна!");
            }
            catch (InputMismatchException e)
            {
                System.out.println("\tОшибка, введён символ при указании длины массива!");
            }
        }
    }
 
    public static void main(String[] args)
    {
        int[] array = InputArray();
 
        System.out.println("\nМинимум: " + FindMinimum(array));
        System.out.println("Максимум: " + FindMaximum(array));
 
        System.out.println("\nСреднее арифметическое: " + FindAverage(array));
 
        System.out.println("\nМедиана: " + FindMedian(array));
 
        System.out.println("\nСреднее геометрическое: " + FindGeometricAverage(array));
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2019, 04:25
Ответы с готовыми решениями:

Ошибка при работе с массивом
В чем ошибка? Dim m_k(2, 25) m_k() = Sheets(3).Range(Sheets(3).Cells(2, 1), Sheets(3).Cells(26, 2)) ...

Ошибка при работе с массивом
Добрый вечер всем. Пишу простую программу мат операций с массивами. И вот выдает такое окно с ошибкой. Помогите пожалуйста я не понимаю...

Ошибка при работе с массивом
var a:array of integer; i,L,M:integer; begin randomize; for i:=1 to n do begin a:=random(100); write(a,' '); end;

2
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
27.06.2019, 10:49
Ващет всё работает
Bash
1
2
3
4
5
6
7
8
9
10
11
12
Введите значение: 10
Введите значение: 20
Введите значение: 30
 
Минимум: 10
Максимум: 30
 
Среднее арифметическое: 20.0
 
Медиана: 20.0
 
Среднее геометрическое: 18.171205928321395
Но прост хочу заметить, что вот эта конструкция крайне неэффективна
Java
1
2
3
4
5
6
7
8
            catch (NegativeArraySizeException e)
            {
                System.out.println("\tОшибка, длина массива не может быть отрицательна!");
            }
            catch (InputMismatchException e)
            {
                System.out.println("\tОшибка, введён символ при указании длины массива!");
            }
ибо эти исключения можно проверить самостоятельно. Нет смысла перехватывать исключение, если его можно проверить
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
27.06.2019, 10:59
Ева Адамова, методы в джава пишутся с маленькой буквы (как и переменные), а лишних пробелов между строками делать не принято.

Цитата Сообщение от Ева Адамова Посмотреть сообщение
if (entities == null || entities.length == 0)
* * * * {
* * * * * * return minimum;
* * * * }
не согласен, лучше уж исключение кинуть. Иначе, вдруг юзер реально ждал что там в массиве будут миллиарды, по факту массив пустой или нулл, но юзер не узнает об этом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2019, 10:59
Помогаю со студенческими работами здесь

Ошибка #ИМЯ? при работе с массивом
Добрый день. Сделал пользовательскую функцию, которая должна возвращать массив значений. Если обращаться к ней через процедуру -...

Ошибка при работе с двумерным массивом
Ребята тут ошибка !!!!! не могу нормально ввести е1 и е2 в чем проблема???? using System; using System.Collections.Generic; ...

Ошибка при работе с динамическим массивом
При работе внутри цикла компилятор пишет об исключении при нарушение прав доступа при чтении, очевидно, это из-за динамического массива....

Ошибка при работе с динамическим массивом
Народ можете подсказать пожалуйста, появляется вот такая ошибка при запуски вот такого кода #include &lt;iostream&gt; using...

Ошибка при работе с массивом объектов
Здравствуйте! У меня такой вопрос: требовалось разработать класс квадратных матриц с несколькими конструкторами, перегрузить операции,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru