LINUX.ORG.RU

Ответ на: комментарий от Gentooshnik
#include <conio.h>
#include <stdio.h>
 
#define ROWS 4
#define COLS 3
 
void main() {
    int a[ROWS][COLS] = 
        {{1, 4, 5}, 
         {2, 6, 8}, 
         {1, 0, 9}, 
         {4, 2, 8}};
    int i, j, tmp, flag;
 
    do {
        flag = 0;
        for (i = 1; i < ROWS*COLS; i++) {
            if (a[0][i] < a[0][i-1]) {
                tmp = a[0][i];
                a[0][i] = a[0][i-1];
                a[0][i-1] = tmp;
                flag = 1;
            }
        }
    } while(flag);
 
    for (i = 0; i < ROWS; i++) {
        for (j = 0; j < COLS; j++) {
            printf("%3d", a[i][j]);
        }
        printf("\n");
    }
 
    _getch();
}

Первый попавшийся фрагмент на си с двумерным массивом. Туплю на строчке

tmp = a[0][i];
получить значение по индексу. (Не смог найти пример для тикля).

tt ()
Ответ на: комментарий от tt

Так это же список, а не массив. Скорость доступа будет страдать (но это не точно). Вообще во всех tcl книжках рекомендуют лепить просто ассоциативный массив с каким-нибудь ключом типа «строка:столбец».

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Это крайне неточно, список в Tcl это не linked list, а как раз ближайшая вещь к массиву, и по сравнению с $array($row:$col) он будет гораздо быстрее.

LeninGad ()
Ответ на: комментарий от no-such-file

Да, конечно, там именно что обычный сишный массив объектов с realloc по необходимости (на уровне языка linsert вообще копирующий, а не мутирующий, но к нему приделан copy-on-write, так что хотя бы для уникальных списков будет честный realloc)

LeninGad ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.