Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Vlas on September 25, 2022, 08:53:07 PM
-
Здравствуйте, Гуру.
необходимо было отсортировать данные в массиве. получил не верный результат. сходил за хелпом и прогнал код оттуда, только изменил до 25 значений. в результате (см. вложение) получил не верный результат, похоже массив сортируется по знакоместу, а не по значению.
вопрос: как отсортировать по полному значению?
ППЦ: файл разрешённого размера не прикрепляется, пишет папка аплод переполнена.
-
собственно лог:
22:29:48 18
22:29:48 34
22:29:48 66
22:29:48 15
22:29:48 11
22:29:48 28
22:29:48 48
22:29:48 41
22:29:48 45
22:29:48 52
22:29:48 92
22:29:48 50
22:29:48 29
22:29:48 70
22:29:48 66
22:29:48 80
22:29:48 3
22:29:48 66
22:29:48 9
22:29:48 35
22:29:48 47
22:29:48 22
22:29:48 50
22:29:48 77
22:29:48 90
22:29:48 sort:
22:29:48 11
22:29:48 15
22:29:48 18
22:29:48 22
22:29:48 28
22:29:48 29
22:29:48 3
22:29:48 34
22:29:48 35
22:29:48 41
22:29:48 45
22:29:48 47
22:29:48 48
22:29:48 50
22:29:48 50
22:29:48 52
22:29:48 66
22:29:48 66
22:29:48 66
22:29:48 70
22:29:48 77
22:29:48 80
22:29:48 9
22:29:48 90
22:29:48 92
-
код где? :o
-
вопрос: как отсортировать по полному значению?.
Функция INT. Принудительно возвращает число. Ваш массив воспринимается, как строки.
-
код из хелпа, только увеличил ряд до 25.
Вот:
// генерация массива
for($a=0, $a<25)
$var[$a] = rnd(0,100)
print($var[$a]);
end_cyc
// сортировка
arrsort($var)
print("sort:")
// вывод результата
for($a=0, $a<25)
print($var[$a]);
end_cyc
halt
-
вопрос: как отсортировать по полному значению?.
Функция INT. Принудительно возвращает число. Ваш массив воспринимается, как строки.
а делать то что? как мне int прикрутить к моему массиву?
INT
Функция. Возвращает целую часть числа без округления. Принудительно возвращает число.
не понимаю связь int и создаваемого массива, мне округления не нужны и массив в принципе не содержит дробных чисел. а в каком месте надо прогнать массив через int чтобы он стал целочисленным и не стал опять строчным? мне с ним еще работать как с числами...
-
необходимо было отсортировать данные в массиве. получил не верный результат. сходил за хелпом и прогнал код оттуда, только изменил до 25 значений. в результате (см. вложение) получил не верный результат, похоже массив сортируется по знакоместу, а не по значению.
вопрос: как отсортировать по полному значению?
http://crapware.aidf.org/forum/index.php?topic=356.msg31199#msg31199
раздел "Исправления".
Короче исправлено с версии v4.14.001b. Лучше, конечно, использовать v4.14.003b. Ну или сортировать самому, любым базовым алгоритмом, можно начать с сортировки пузырьком ;D
В кликере всё сделано для начинающих :D чтоб алгоритмы мимо них не прошли.
-
ясно) теперь логика вернулась в мою голову) пока продолжу на "старой" версии ибо привычно)
надеялся одной командой обойтись, но уже сам отсортировал самописным циклом)))
спасибо за ответ :D
-
Привет!
Нули нужно дописать к сортируемым цифрам слева, до нужной разрядности, тогда всё нормально сортируется. Обсуждалось уже подобное. Так будет работать быстрее. Костыль конечно, но более изящный, чем самописный цикл. :)
LOGCLEAR
// генерация массива
for($a=0, $a<25)
$var[$a] = STRCONCAT("00", rnd(0,100))
$var[$a] = STRCUT2($var[$a], STRLEN($var[$a])-2, STRLEN($var[$a]))
print($var[$a])
end_cyc
// сортировка
arrsort($var)
print("sort:")
// вывод результата
for($a=0, $a<25)
print($var[$a]*1) // или print(INT($var[$a]))
end_cyc
halt