Как определить 2D массив в C - PullRequest
0 голосов
/ 12 июня 2019

Я должен сделать двумерный массив, который несет информацию о таблице

Я не могу найти синтаксическую ошибку в следующем

int majorPositions[][]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

также, как мне ввести последние данные столбца, так как это символ, а не целое число

Ответы [ 5 ]

2 голосов
/ 12 июня 2019

Вы должны установить размер массива следующим образом:

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

или

int majorPositions[4][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

Если ваш последний столбец просто ВКЛ / ВЫКЛ, вы не можете просто представить его как 1 или 0?

1 голос
/ 12 июня 2019

Я бы использовал что-то вроде (как другое упоминание выше)

#include <stdbool.h>

typedef struct
{
   int x;
   int y;
   int z;
   bool Tool;
} TableEntry_t;

TableEntry_t majorPositions[4];

Это четкое решение, и вы можете легко расширить таблицу, если хотите.

1 голос
/ 12 июня 2019

Вы должны указать размер внутреннего массива следующим образом.

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

И, я думаю, вы можете кодировать ON и OFF в 1 и 0.

0 голосов
/ 12 июня 2019

В двумерных массивах вы должны указать второе измерение массива во время объявления.

int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};

0 голосов
/ 12 июня 2019

Вам необходимо явно указать размер (ы) внутреннего размера.Чтобы упростить все, рассмотрите возможность использования того факта, что логические значения в C являются просто прославленными целыми числами.Вы можете использовать int как bool и наоборот.

#include <stdbool.h>

int majorPositions[][4]=
{
  {  0,  90, -90, false },
  { 90,  15,  90, true  },
  {-45, -30,  30, true  },
  {  0,  60,   0, false },
};

Вы можете получить размер этого массива во время компиляции, используя sizeof(majorPositions)/sizeof(majorPositions[0]) (в данном случае это будет 4).

В качестве альтернативы используйте struct, как предлагается в других ответах.Может давать или не давать менее эффективный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...