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

Выяснить, имеются ли в массиве два идущих подряд положительных элемента

29.11.2021, 19:59. Показов 1401. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Совсем недавно начал изучение C#. Затрудняюсь с одной задачей. Необходимо выяснить, имеются ли в массиве два идущих подряд положительных элемента. Вывести такие пары и подсчитать их количество. Вообщем говоря вот код
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Console.WriteLine("Введите размер массива ");
                int nums2 = int.Parse(Console.ReadLine());
                int[] Array2 = new int[nums2];
                Console.WriteLine("Введите максимальное значение массива ");
                int MaxSize2 = int.Parse(Console.ReadLine());
                Console.WriteLine("Введите минимальное значение массива ");
                int MinSize2 = int.Parse(Console.ReadLine());
                Random Rand2 = new Random();
                Console.ReadKey();
                Console.WriteLine("Массив");
                for (int i = 0; i < nums2; i++)
                {
                    Array2[i] = Rand2.Next(MinSize2, MaxSize2);
                    Console.WriteLine(Array2[i]);
                }
                Console.WriteLine("\r\n");
                for (int i = 0; i < nums2; i++)
 
                    if ((Array2[i] * Array2[i + 1]) % 10 == 0)
                    {
                        Console.WriteLine($"Пары: {Array2[i]} + {Array2[i + 1]}");
                    }


Меня интересует данный фрагмент кода
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
 for (int i = 0; i < nums2; i++)
 
                    if ((Array2[i] * Array2[i + 1]) % 10 == 0)
                    {
                        Console.WriteLine($"Пары: {Array2[i]} + {Array2[i + 1]}");

Вылетает ошибка System.IndexOutOfRangeException: "Index was outside the bounds of the array.". Суть ошибки - понятна, однако не могу понять логику с массивами, что в этой строчке кода не так, так же иногда(код не меняется, однако) при написании вот такой строки кода в другом алгоритме
C#
1
2
3
4
5
6
7
8
                for (int i = 0; i < nums; i++)
                {
                    if (Array[i] > 0 && Array[i+1] > 0)
                    {
                    Console.WriteLine($"Пары: {Array[i]} + {Array[i+1]}");
                    Count++;
                    }
                }
выводит ту же ошибку, есть подозрение, что проблема в Array[i+1]. Однако я ограничил же размер массива, но по какой то причине алгоритм всё равно выходит за границу. Какая логика у массивов в C#? Очень интересно стало, да и много мороки вызывает, всяческими костылями пытаюсь исправлять, но это уже быдлокод идёт.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2021, 19:59
Ответы с готовыми решениями:

Определить, имеются ли в одномерном массиве два подряд идущих нуля
Дан одномерный массив числовых значений, насчитывающий N элементов. Определить, имеются ли в массиве два подряд идущих нуля.

Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента
Дан массив действительных чисел а1,…, аn. Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента. Подсчитать...

Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента
Помогите решить пожалуйста!!! буду очень благодарна) Дан массив действительных чисел а1,…, аn. Выяснить, имеются ли в данном массиве...

6
 Аватар для Luca Brasi
892 / 204 / 55
Регистрация: 06.11.2015
Сообщений: 2,288
Записей в блоге: 2
29.11.2021, 20:02
Цитата Сообщение от RidusM Посмотреть сообщение
Какая логика у массивов в C#? Очень интересно стало, да и много мороки вызывает, всяческими костылями пытаюсь исправлять, но это уже быдлокод идёт.
так а что если ошибку попробвать отлавливать try/catch, да посмотреть на индекс и сопоставить с задуманной логикой?
0
0 / 0 / 0
Регистрация: 29.11.2021
Сообщений: 6
29.11.2021, 20:07  [ТС]
P.S.
Извиняюсь, условие не то отправил для кода, истинное условие:
Найти в заданной последовательности все пары (аi,аi+1), такие, что
аi*аi+1 кратно 10 Вывести такие пары и подсчитать их количество.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
29.11.2021, 20:09
Лучший ответ Сообщение было отмечено RidusM как решение

Решение

RidusM,
Цитата Сообщение от RidusM Посмотреть сообщение
Однако я ограничил же размер массива
где Вы ограничили?
размер массива у Вас = nums2, к примеру, 4. (5 6 3 4), но индексы в массиве начинаются с 0 (0 1 2 3).
если сформировать пары индекс-элемент, то получаем (0-5 1-6 2-3 3-4)
в цикле Вы проходитесь по массиву, где индексы начинаются с 0 и до момента, пока индекс меньше размерности массива (в нашем случае = 4)
C#
1
for (int i = 0; i < nums2; i++)
и когда Вы на последней итерации проверяете элемент Array[i+1], то получаете индекс, который = 4. а такого индекса в массиве нет.
теперь думайте, что надо сделать, чтоб в последней итерации индекс Array[i+1] получил значение = 3
1
0 / 0 / 0
Регистрация: 29.11.2021
Сообщений: 6
29.11.2021, 20:11  [ТС]
Работать с try/catch не пытался пока что, задания были выданы преподавателем на тему по массивам. Смотрел много примеров, просматривал форму по таким ошибкам, но ответов либо не было, либо он был непонятен. Фактически в коде я указал, что размер вводиться с клавиатуры, потом с помощью for - я заполнил каждый элемент массива каким либо значением, но после я не могу понять, почему ошибка вылетает, как я понял if эту ошибку не может выдать, по той причине, что там буллево значение, но каким образом оно выходит, если я ограничил его - мне не понятно.
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
29.11.2021, 20:11
Вам нужно поправить в 17-й строке и все заработает
1
0 / 0 / 0
Регистрация: 29.11.2021
Сообщений: 6
29.11.2021, 20:20  [ТС]
Понял, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2021, 20:20
Помогаю со студенческими работами здесь

Выяснить, имеются ли в заданном массиве два идущих подряд положительных элемента
Одномерный массив а1,…, аn. Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента. Подсчитать количество таких пар

Выяснить, имеются ли в данном массиве два идущих подряд положительных элемента. Подсчитать число таких пар
Всем доброе время суток! Очень нужна помощь! Дан массив действительных чисел а1,…, аn. Выяснить, имеются ли в данном массиве два...

Выяснить, имеются ли в данном массиве 2 идущих подряд положительных элемента
Помогите пожалуйста решить задание!:help: Дан массив чисел A1,...,An. Выяснить, имеются ли в данном массиве 2 идущих подряд...

Выяснить имеются ли в массиве А два идущих подряд нулевых элемента
Выяснить имеются ли в массиве А (а1, а2, ...,аn) два идущих подряд нулевых элемента. Напечатать их порядковые номера. Заранее спасибо...

Выяснить, имеются ли в массиве два идущих подряд отрицательных элемента
Дана последовательность целых чисел. Выяснить, имеются ли в данном массиве два идущих подрят отрицательных элемента. Подсчитать количество...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru