我正在尝试使用2d数组绘制坐标到地图。坐标的数据已经由用户输入并保存在一个结构中。这是从我的主程序中截取的一段代码。
#include <stdio.h>
#include <stdlib.h>
char map[5][10]={
"..........",
"..........",
"..........",
"..........",
".........."
};
struct coord{
int x;
int y;
};
int loop, n, i;
struct coord mg[3];
int main(){
for(loop=0;loop<3;loop++){
printf("nnEnter MAGENTA X coordinate 0:n");
scanf("%d",&mg[loop].x);
printf("nEnter MAGENTA Y coordinate:n");
scanf("%d",&mg[loop].y);
}
printf("Struct contains:n");
for(loop=0;loop<3;loop++){
printf("tx %d,%d yn",mg[loop].x,mg[loop].y);
}
/*AS SUGGESTED IN ANSWER BELOW (PAUL92),I HAVE DONE THIS BUT GET AN ERROR*/
n=3;
i=0;
for (i = 0; i < n; i++) {
map[mg.y][mg.x] = 'x';
}
getchar();
return(0);
}
我得到的错误是
testing.c:35:13: error: member reference base type 'struct coord [3]' is not a
structure or union map[mg.y][mg.x] = 'x';
~~^~
我想要实现的是获得结构中的坐标,然后将其分配给数组中的正确元素,即如果用户输入3(x),5(y),则元素map[4][2]将保持此显示和'x'。
我不确定我是否完全理解你想要什么,但如果你只是想在地图上用'x'标记点,例如,你可以遍历这些点:
for (int i = 0; i < n; i++) {
map[mg.y][mg.x] = 'x';
}
,其中n为点的个数。当然,这是在初始化映射之后。