2012-05-15 3 views
0

Я пытаюсь создать 2D-массив из данных, считанных из TXT-файла.
Данные '' data.txt выглядеть Belows:Многомерный массив в C

A;B;4 
A;C;5 
B;C;8 

Предположим, что симметрия.
Есть ли способ создать 2D-матрицу [i] [j] и напечатать в d [i] [j] = значение?

Цените свои комментарии/предложения.

+0

вы можете создать массив символов и сохранить значение и ключ там. –

+0

это ';' разделенное значение? –

ответ

1

2D массивы полезны, когда размеры известны во время компиляции. Если это так, могут быть полезны другие ответы. Если нет, 2D-массив не для вас.

Я предлагаю использовать простой массив 1D, выделенный (malloc), чтобы иметь n * n записей.
Затем, чтобы получить доступ к ячейке i/j, используйте array[i*n+j].

Другим подходом является выделение массива указателей на массивы. Создание его сложнее, но вы можете получить к нему доступ как array[i][j].

0
int tda[3][3]; 
tda[1][2] = 'x'; 

Вы также можете использовать malloc для массива с динамическим размером.

0

Как Вы писали:

#include <stdio.h> 

#define N 4 

int main(int argc, char **args) { 
    int A[N][N], i, j; 

    for (i = 0; i < N; i++) 
     for (j = 0 ; j < N; j++) 
      A[i][j] = i + j; 

    for (i = 0; i < N; i++) { 
     for (j = 0; j < N; j++) 
      printf("%d ", A[i][j]); 
     printf("\n"); 
    } 
} 
+0

Что делает эта функция? –

+0

Он просто устанавливает некоторые значения в матрице 4x4, а затем печатает их. –

Смежные вопросы