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

Ошибка: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException­: 100

18.06.2019, 17:39. Показов 3434. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Линейный массив заполняется случайными вещественными числами из диапазона [-100.0; +100.0). размер массива равен 100. Считая значения массива точками на числовой оси ОX , найдите такой отрезок длины 10 на этой оси, чтобы ему принадлежало наибольшее колличество точек, заданных в массиве.Помогите пожалуйста исправить ошибку

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
package com.company;
 
public class Main {
 
    public static void main(String[] args)
        {
            int[] array = new int[100];
            for (int i = 0; i < array.length; i++) {
                array[i] = (int)(Math.random( ) * 200 - 100);
            }
            for (int i = 0; i < array.length; i++) {
                for (int j = i + 1; j < array.length; j++) {
                    if (array[i] > array[j]) {
                        int tmp = array[i];
                        array[i] = array[j];
                        array[j] = tmp;
                    }
                }
            }
            for (int i = 0; i < array.length; i++) {
                System.out.println(array[i] + " ");
            }
            int maxCounter = 0, imax = 0;
            for (int i = 0; i < array.length; i++) {
                int counter = 0, j = i;
                while ((array[j] - array[i]) < 10) {
                    counter++;
                    j++;
                }
                if (counter > maxCounter) {
                    maxCounter = counter;
                    imax = i;
                }
            }
 
            System.out.println("Максимум чисел в диапазоне 10: " + maxCounter + " индекс начала диапазона: " + imax +"(" + array[imax]+")");
        }
    }
Ошибка на 26 строке, в цикле while, выход за границы массива
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 100
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.06.2019, 17:39
Ответы с готовыми решениями:

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
import java.util.Scanner; public class Filter { public static void main (String args) { Scanner sc = new...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
Добрый день! Дабы разобраться с объектами решил написать простую программу для вывода чисел фибоначчи (количество чисел задается с...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
Посмотрите пожалуйста, что тут не так. Битый час сижу голову ломаю, никак додуматься не могу. Выдает эту ошибку:Exception in thread...

3
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
18.06.2019, 17:55
j выходит за пределы массива потому что i считается до последнего допустимого индекса, а во вложенном цикле i считается от j и далее и конечно выходит за пределы т.к. никак не ограничено.
надо в while добавить условие && j < array.length
1
0 / 0 / 0
Регистрация: 30.05.2018
Сообщений: 16
18.06.2019, 18:07  [ТС]
Lumber, Спасибо, исправил, а задача значит правильно решена ?
0
 Аватар для Lumber
345 / 141 / 51
Регистрация: 02.12.2015
Сообщений: 333
18.06.2019, 18:36
Цитата Сообщение от Hans_Zimmer Посмотреть сообщение
а задача значит правильно решена ?
нет, не значит - я не разбирался с ней полностью.

Я так понимаю сначала сортируются по возрастанию точки, потом последовательно ищется максимальная подпоследовательность разница между крайними элементами меньше длины интервала. Мне кажется такой подход должен приводить к правильному решению (но возможно есть более эффективный алгоритм). Но это не исключает возможное наличие ошибок реализации.

Есть несколько замечаний:
- в задаче говорится о вещественных числах. а в программе используются целые
- речь в условии об отрезке. "Отрезок" включает в себя свои крайние точки (в отличии от "интервала").
значит условие попадания должно быть не < а <=
- неэффективность 1: не надо с каждой начальной точки искать подпоследовательность начиная с длины 1, надо начинать с длины maxCounter+1
- неэффективность 2: если до конца массива осталось maxCounter то дальше проверять не надо - там уже maxCounter превысить никак не получится (это уже ограничение для внешнего цикла).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2019, 18:36
Помогаю со студенческими работами здесь

Ошибка: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
Код реализации стека: package Class; class Stack { private int top; private int stack; Stack(int size){ ...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
Здравствуйте у меня такая проблема: Exception in thread &quot;main&quot; java.lang.ArrayIndexOutOfBoundsException: 7 at...

Ошибка: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
Задача такая: из файла эксель считываются значения в матрицу, нужно подсчитать среднее арифметическое каждого столбца, содержимое таблицы...

Нужна подсказка. Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
Подскажите пожалуйста в чем моя ошибка. Данная ошибка возникает в 79, 80 и 85 строках. /** * Created by bunta on 07.03.16. */...

Ошибка Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at pr4.RSA.main(RSA.java:44)
package pr4; import java.math.BigInteger; import java.security.SecureRandom; public class RSA { private final...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru