Имеется 11 целочисленных с разными значениями. Как выбрать из них самую крупную по значению?

Принятый ответ

8gabriel8:
pro100master:
вроде цикл если у вас 11 переменная то итог 66 цикл будет
Тут напрашивается оптимизация.
Вот цикл из 10 проверок:
Правда, не проверял, но вроде должно работать.
вариант сверху /\
`
ОЖИДАНИЕ РЕКЛАМЫ...
4
23
6 лет назад
Отредактирован Raised
4
max(int, int)
ой привычка писал из php
0
23
6 лет назад
0
pro100master, как этим пользоваться?
Я что-то начал понимать
Загруженные файлы
0
28
6 лет назад
0
Циклом и массивом проще всего.
0
23
6 лет назад
0
Вот что я сделал, теперь проверю работоспособность
Загруженные файлы
2
28
6 лет назад
2
Вот что я сделал, теперь проверю работоспособность
Так тоже можно, главное не запутаться в огромном количестве скобочек.
2
23
6 лет назад
2
PT153, а что за циклы и массив?
Загруженные файлы
0
23
6 лет назад
0
вроде цикл если у вас 11 переменная то итог 66 цикл будет
учитивая 1 цикл подбирает всех 10 сотальных и сортирует порядок наименший к большему и так остальные выравняя и после этого уже можно array[0] наименший array[11] наибольший число
так как готовая функция сортировка jass нету
www.vzmakh.ru/info/pascal/modules/page14.html тут почитай разных методов как сортировать 11 переменых чтобы определить
2
26
6 лет назад
2
pro100master:
вроде цикл если у вас 11 переменная то итог 66 цикл будет
Тут напрашивается оптимизация.
Вот цикл из 10 проверок:
Правда, не проверял, но вроде должно работать.
Загруженные файлы
0
23
6 лет назад
0
8gabriel8, у него 11 переменная если что
0
21
6 лет назад
Отредактирован Raised
0
max(int, int)
pro100master, нет такой функции.
Бордер, обычным циклом О(n). Ты должно быть стебешься.
0
23
6 лет назад
0
Raised, я мало использую такие вещи в картах. Не сталкивался с вещами, где они бы потребовались. Но я все же сделал на max(int, int) и оно работает.
0
26
6 лет назад
0
pro100master:
8gabriel8, у него 11 переменная если что
Так от 0 до 10 и получается 11.
0
21
6 лет назад
Отредактирован Raised
0
Могу продемонстрировать как записывать/считывать с массива инты для группы юнитов.

code
library greatestNumber initializer Init

    globals
        trigger TEST
        integer array myInt
    endglobals

    function maxValue takes integer from, integer to returns integer
        local integer i = from
        local integer max = myInt[from]
    
        loop
            set i = i + 1
            if myInt[i] > max then
                set max = myInt[i]
            endif
        exitwhen i >= to
        endloop
        
        return max
    endfunction
    
    function Test takes nothing returns nothing
        call BJDebugMsg(I2S(maxValue(0,7)))
    endfunction
    
    function Init takes nothing returns nothing
        
        set myInt[0] = 1
        set myInt[1] = 2
        set myInt[2] = 4
        set myInt[3] = 8
        set myInt[4] = 6
        set myInt[5] = 36
        set myInt[6] = 12
        set myInt[7] = 4
        
        set TEST = CreateTrigger()
        call TriggerRegisterPlayerKeyEventBJ(TEST,Player(0),bj_KEYEVENTTYPE_DEPRESS,bj_KEYEVENTKEY_UP)
        call TriggerAddAction(TEST,function Test)       
        
    endfunction

endlibrary
0
13
6 лет назад
0
Как считаете, огромные ветки ифов будут лучше циклов?
2
18
6 лет назад
2
Вы издеваетесь все или что?
Проходишь циклом от 0 до 10, смотришь переменную, если она больше нынешнего максимума (который изначально должен быть самым мелким возможным числом в карте), то приравниваешь максимум к этому числу.
У меня племянник шести лет такие задачи решает в лёт.
0
28
6 лет назад
0
Пушистый:
Как считаете, огромные ветки ифов будут лучше циклов?
Да, потому что в цикле есть ещё инкримент, а количество сравнений одинаковое
0
23
6 лет назад
0
Raised, что нету есть такой функция в GUI и так jass
Например у меня 4 переменная i1, i2, i3, i4
max(max(max(i1, i2), i3), i4)
и нет нужды циклом
0
21
6 лет назад
0
pro100master, и JassHelper ее не поддерживает еще скажи.
Пушистый, огромные ветки сравнений - недостаточно гибко.
0
23
6 лет назад
0
Raised, че ты сказку придумываеш он входит стандартный варик функиця
бж IMaxBJ(1, 5)
а внутри функция
function IMaxBJ takes integer a, integer b returns integer
if (a < b) then
return b
else
return a
endif
endfunction
0
21
6 лет назад
0
pro100master, ааа. Вот оно что. А я просто писал Max и мне не предлагало никаких параметров. Понятно теперь.
0
23
6 лет назад
0
Raised, бывает =)
0
20
6 лет назад
0
8gabriel8:
pro100master:
вроде цикл если у вас 11 переменная то итог 66 цикл будет
Тут напрашивается оптимизация.
Вот цикл из 10 проверок:
Правда, не проверял, но вроде должно работать.
вариант сверху /\
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.