Всем хорошего дня! Нужна помощь в решении задачи. Я новичок в vba, многих вещей ещё не понимаю. Задача следующая:
Дано положительное число В и набор из десяти чисел. Вывести максимальный из тех элементов набора, которые больше В, а также его номер. Если
чисел, больших В, в наборе нет, то дважды вывести 0.
Моё решение:
Последний пункт задачи я не стал реализовывать в коде.Сознательно уменьшил количество итераций до 3-х. Подскажите, есть ли общая ветка для ответов на вопросы новичков, чтобы не создавать каждый раз отдельную тему?
Дано положительное число В и набор из десяти чисел. Вывести максимальный из тех элементов набора, которые больше В, а также его номер. Если
чисел, больших В, в наборе нет, то дважды вывести 0.
Моё решение:
Код |
---|
Sub vivod() Dim B, A(3), C(3), k As Integer For i = 1 To 3 A(i) = InputBox("введите 3 чисел") Next For i = 1 To 3 B = 5 If A(i) > B Then C(i) = A(i) 'тут в массив С должны добавляться все элементы массива А, где A(i) > B. Но этого не происходит, добавляются все элементы массива А. End If Next For i = 2 To 3 For j = 3 To i Step -1 If C(j) > C(j - 1) Then B = C(j) C(j) = C(j - 1) C(j - 1) = B 'тут попарное сравнение для поиска наибольшего значения массива С, но этот алгоритм не решает поставленную задача k = j End If Next Next MsgBox ("Макcимальное значение из массива A > числа B=" & B & " " & "и его порядковый номер=" & k) End Sub |