我必须制作一个2D数组来携带表格的信息
我在下面找不到语法错误
int majorPositions[][]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
另外,我如何输入最后一列的详细信息,因为它是一个字符,而不是整数
答案 0 :(得分:2)
您必须像这样设置数组的大小:
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}};
如果最后一列只是ON / OFF,您不能仅将其表示为1还是0?
答案 1 :(得分:1)
您必须按照以下说明指定内部数组的大小。
int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};
而且,我认为您可以将ON和OFF编码为1和0。
答案 2 :(得分:1)
我会使用类似(类似于上面提到的其他内容)
#include <stdbool.h>
typedef struct
{
int x;
int y;
int z;
bool Tool;
} TableEntry_t;
TableEntry_t majorPositions[4];
这是一个明确的解决方案,您可以根据需要轻松扩展表。
答案 3 :(得分:0)
您需要显式输入内部尺寸尺寸。为了简化所有内容,请考虑利用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
。它可能会或可能不会提供效率较低的代码。
答案 4 :(得分:0)
在二维数组中,必须在声明期间指定数组的第二维。
int majorPositions[][3]={{0,90,-90},{90,15,90},{-45,-30,30},{0,60,0}};