LINUX.ORG.RU

Как должна работать функция asorti в gawk?


0

1

Простой пример:

BEGIN { md[1] = 11; md[2] = 33; md[3] = 44; md[4] = 22; n = asorti(md,mi); printf(«n = %d md[1..4]: %2d %2d %2d %2d\n»,n,md[1],md[2],md[3],md[4]); printf(«n = %d mi[1..4]: %2d %2d %2d %2d\n»,n,mi[1],mi[2],mi[3],mi[4]); }

# Output: # n = 4 md[1..4]: 11 33 44 22 # n = 4 mi[1..4]: 1 2 3 4

# По-моему, д.б.: # n = 4 md[1..4]: 11 33 44 22 # n = 4 mi[1..4]: 1 4 2 3

# В чем дело?

# В чем дело?

Прежде всего в отсутствии форматирования и тега code.

Насчет программы, сейчас подумаю.

proud_anon ★★★★★
()

А, я понял. Ты думаешь, что asorti сортирует индексы исходного массива по значениям, которые им сопоставлены? Нет, это, ЕМНИП, не так. Она тупо создает отсортированный массив индексов исходного массива.

proud_anon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.