Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5

Индекс выходит за пределы массива

21.11.2015, 23:08. Показов 5174. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие задачи:
Сформировать целочисленный массив A(75), элементами которого являются
случайные числа из диапазона [-5, 20]. Найти среди его элементов два, разность
которых имеет наибольшее значение.

Моё решение:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int[] a = new int[75];
 
            Random rnd = new Random();
            for (int i = 0; i < 75; i++)
            {
                a[i] = rnd.Next(-6, 21);
            }
 
            int max = Math.Abs(a[0] - a[1]);
            for (int i = 0; i < 75; i++)
            {
                for (int j = 0; j < 75; i++)
                {
                    if ((Math.Abs((a[i] - a[j])) > max) & (i != j))
                        max = Math.Abs(a[i] - a[j]);
                }
            }
            Console.WriteLine("Максимальная разность = " + max);
            Console.ReadKey();
Студия говорит, что индекс выходит за пределы массива в условии во втором цикле, а я не могу понять что не так.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2015, 23:08
Ответы с готовыми решениями:

Нужна проверка на то что не индекс выходит за пределы длины массива
Привет всем. Вопрос по этике написания кода Сразу извиняюсь за возможный идиотизм вопроса. И он в следующем: нужна проверка на то что...

Parallel.For выходит за пределы массива
Всем привет. необходимо реализовать умножение матриц. Написал следующий фрагмент кода private double multi_matrix(double _A,...

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

8
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
21.11.2015, 23:16
Цитата Сообщение от artyom_mel Посмотреть сообщение
C#
1
for (int j = 0; j < 75; i++)
исправьте на:
C#
1
for (int j = 0; j < 75; j++)
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
21.11.2015, 23:21
12 строка
C#
1
for (int j = 0; j < 75; i++)
скорее всего надо
C#
1
for (int j = 0; j < 75; j++)

Не по теме:

ну, 2 ответа лучше, чем ни одного)

0
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5
22.11.2015, 00:08  [ТС]
Ой, спасибо, не заметил, что не исправил i на j.
Но теперь другая проблема, программа почему-то всегда выводит 26 в ответе.
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
22.11.2015, 00:44
Цитата Сообщение от artyom_mel Посмотреть сообщение
программа почему-то всегда выводит 26 в ответе.
Запустите ее раз 20, возможно повезет и программа выдаст 25 или 24 или другое значение, близкое к максимально возможной разнице.
Если сделать массив не на 75, а на 20 элементов, то ответы точно будут отличаться.
0
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5
22.11.2015, 14:16  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
           Console.Write("Введите кол-во студентов: ");
            int n = int.Parse(Console.ReadLine());
 
            int[] rez = new int[n];
 
            for (int i = 1; i <= n ; i++)
            {
                Console.Write("Введите оценку студента номер " + i + ": ");
                rez[i] = int.Parse(Console.ReadLine());
            }
 
            int sum = 0;
            for (int i = 1; i <= n; i++)
            {
                sum += rez[i];
            }
 
            int sr = sum / n;
 
            Console.WriteLine("Средний балл сдачи экзамена: " + sr);
            Console.ReadKey();
Когда ввел все оценки - дальше ничего не происходит и студия пишет, что опять индекс за пределы массива вышел (9 строка). Что здесь не так-то?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.11.2015, 14:20
Цитата Сообщение от artyom_mel Посмотреть сообщение
for (int i = 1; i <= n ; i++)
Как минимум то, что = тут в условии быть не должно. i<n
0
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 5
22.11.2015, 14:24  [ТС]
Нет, это как раз верно, так у меня на один меньше получится студентов
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
22.11.2015, 14:34
Ну понятно, что на 1 меньше, вы же счет начинаете не с 0ого элемента, а с 1ого. int i = 0 тогда.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2015, 14:34
Помогаю со студенческими работами здесь

Индекс выходит за границы массива
Исключение возникает в последней строчке. Индекс выходит за границы массива. // Класс ArrayLenghts статический ...

Индекс выходит за границы массива
Взял из из простор интернета функцию сохранения в .txt документ текстбоксов, но возникла проблема с индексом, помогите с проектом, что не...

Индекс выходит за границу массива
static int Cols (double Arr, out int rows) { int n = Arr.GetLength(0); int m = Arr.GetLength(1); ...

Алгоритм Хаффмана.Индекс вышел за пределы массива
Добрый вечер! Возникла проблем,писал алгоритм Хаффмана по методичкам и при работе выдаёт исключение... using System; using...

Индекс выходит за пределы массива
Код в классе class New { public static int n; public static int a; public static double summ = 0; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru