Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
-7 / 0 / 0
Регистрация: 17.10.2018
Сообщений: 10

Массив: Вставить число А между всеми соседними элементами массива, имеющими одинаковое количество цифр.

25.10.2018, 19:30. Показов 2389. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан целочисленный линейный массив. Вставить число a между всеми соседними элементами, имеющими одинаковое количество цифр.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.10.2018, 19:30
Ответы с готовыми решениями:

Вставить число к между всеми соседними элементами, имеющими одинаковый знак
Здравствуйте! Прошу помочь. Есть задание: вставить число К между всеми соседними элементами, имеющими одинаковый знак.новый массив не...

Вставить число к между всеми соседними элементами, имеющими одинаковый знак
Вставить число к между всеми соседними элементами, имеющими одинаковый знак (массив заполнен случайными числами )

Вставить ноль между всеми соседними элементами массива, имеющими разный знак
Вставить ноль между всеми соседними элементами массива имеющими разный знак

3
1104 / 480 / 33
Регистрация: 05.07.2018
Сообщений: 1,870
Записей в блоге: 7
26.10.2018, 09:37
Уважаемый Срок,
предлагаю вам свой алгоритм решения вашей задачи.
1. объявить число А и инициировать его
2. объявить линейный массив X(), (например Dim X(10) As Integer)
3. и заполнить его целыми случайными числами
4. объявить линейный массив Y(), такой же длины как и массив X()
(в этот массив будет помещаться длина чисел массива X())
5. выполнить
Visual Basic
1
2
3
For i = 1 To n
   Y(i) = Val(Len(Str(Abs(X(i))))) - 1
Next
примечание: надеюсь вы понимаете, что мы находим сначала модуль числа (функция Abs()), потом переводим число в строковый вид (функция Str()), потом вычисляем длину числа (функция Len() выдает длину числа + 1), и далее число возвращаем в числовой вид (функция Val()), и минус 1 (последнее можно и не делать)
6. теперь нам необходимо узнать, сколько же чисел А надо добавить?
7. выполнить
Visual Basic
1
2
3
For i = 1 To n - 1
   If Y(i) = Y(i + 1) Then kol = kol + 1
Next
(где kol - количество чисел А подлежащих добавке)
8. объявить линейный массив Z() длина которого будет больше длины массива X() на величину kol
(например, Dim Z(10 + kol) As Integer))
9. теперь заполняем массив Z() элементами массива X() и числами А.
10. выполнить
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
k = 1
 
For i = 1 To n - 1
   If Y(i) = Y(i + 1) Then
      Z(k) = X(i)
      Z(k + 1) = A
      k = k + 2
   Else
      Z(k) = X(i)
      k = k + 1
   End If
Next
11. теперь надо распечатать оба массива X() и Z() для сравнения

Добавлено через 13 минут
примечание
для объявления динамических массивов следует использовать
оператор ReDim (массив Z() - динамический)
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
26.10.2018, 10:03
Цитата Сообщение от нтч Посмотреть сообщение
функция Len() выдает длину числа + 1
Неправда.

Добавлено через 8 минут
Замените Str на Cstr и не нужно будет минусовать единицу.

Цитата из справочника:

Функция Str(String) используется для приведения числового выражения типа Long в строку(тип String)

Возвращаемое значение
Функция Str(Expression) возвращает значение Number, преобразованное в текстовый тип данных String.
При преобразовании в начале строки возвращаемого значения резервируется место для знака числа. Если число положительно, то в этом месте будет пробел, если число отрицательно, то выводится знак минус.
.......
1
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
27.10.2018, 02:19
Цитата Сообщение от нтч Посмотреть сообщение
Уважаемый Срок,
предлагаю вам свой алгоритм решения вашей задачи.
Вы издеваетесь? ТСу не нужен алгоритм, а нужен готовый код, который можно скопипастить, сдать и забыть.
По алгоритму - достаточно одного цикла. Создать выходной массив удвоенной длины, записать первый элемент. В цикле: если длина очередного элемента равна длине предыдущего, записать в выходной массив заданное число. Записать очередной элемент. После цикла Redim Preserve выходного массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2018, 02:19
Помогаю со студенческими работами здесь

Вставить число n между всеми соседними элементами массива
Вставить число n между всеми соседними элементами одномерного массива, имеющими одинаковый знак. Каким должен быть максимальным размер...

Вставить число k между всеми соседними элементами массива
1. Вставить число k между всеми соседними элементами, которые имеют одинаковые знаки (k вводится с клавиатуры). 2. Переставить в...

Вставить число n между всеми соседними элементами массива с одинаковым знаком
Вставить число n между всеми соседними элементами, имеющими одинаковый знак. Каким должен быть максимальный размер исходного массива?

Вставьте в заданный массив элемент X между всеми соседними элементами, имеющими разные знаки
Дан одномерный массив (из N элементов), элементы которого - целые числа, не равные нулю. Также дано целое число X. Вставьте в заданный...

Дан целочисленный линейный массив. Вставить число d между всеми соседними элементами, являющимися отрицательными
Дан целочисленный линейный массив. Вставить число d между всеми соседними элементами, являющимися отрицательными.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru