Страница: 1 |
Страница: 1 |
Вопрос: Помогите занести цифры в массив
Добавлено: 20.06.06 19:35
Автор вопроса: DJ EFFECT
Дело в том,что в этой функции происходит разбиения числа на цифры и формирования массива из цифр,но она не до конца работает...Помогите доработать ее...
Private Sub fCount(n As Long)
Dim c As Integer, s As Byte, numb() As Byte, i, j, loc
s = 1
While n <> 0
c = n Mod 10
ReDim Preserve numb(s)
numb(s) = c
s = s + 1
n = Fix(n / 10)
Wend
For i = 1 To UBound(numb)
loc = numb(i)
numb(i) = numb(UBound(numb) - i + 1)
numb(UBound(numb) - i + 1) = loc
Next i
End Sub
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
DJ EFFECT
Вопросов: 10
Ответов: 18
Профиль | | #1
Добавлено: 20.06.06 19:45
Номер ответа: 2
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #2
Добавлено: 20.06.06 20:38
(это - переворот массива)
Dim i As Long
Dim j As Long
Dim tmp As Byte
Dim l As Long
l = UBound(Ary) - LBound(Ary) + 1
For i = LBound(Ary) To LBound(Ary) + l \ 2 - 1
j = UBound(Ary) - (i - LBound(Ary))
tmp = Ary(i)
Ary(i) = Ary(j)
Ary(j) = tmp
Next i
End Sub
Номер ответа: 3
Автор ответа:
DJ EFFECT
Вопросов: 10
Ответов: 18
Профиль | | #3
Добавлено: 20.06.06 22:08
Да,вполне подойдет...Благодарю
Номер ответа: 4
Автор ответа:
DJ EFFECT
Вопросов: 10
Ответов: 18
Профиль | | #4
Добавлено: 20.06.06 23:20
Пардон,мой вариант тоже работает,...блин а то че=то думал,что ошибься...ну,ладно111
Номер ответа: 5
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #5
Добавлено: 21.06.06 00:07
Да, немного не досмотрел. Там вот так
loc = numb(i)
numb(i) = numb(UBound(numb) - i + 1)
numb(UBound(numb) - i + 1) = loc
Next i
В принципе можно было делать изначальный разворот массива, если только заранее знать колво цифр в числе. И это даже можно определить: NumberOfDigits = int(log(number)/log(10)*1.00000000000001)+1 (если конечно ничего не напутал). Но с последующим разворотом надежнее (не должно быть проблем с отрицательными числами).