我试图使用二维数组将坐标绘制到地图上。用户输入坐标数据并保存在结构中。这是从我的主程序中取出的一段代码。
#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("\n\nEnter 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 y\n",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';
~~^~
我想要实现的是将struct中保存的坐标分配给数组中的正确元素,即如果用户输入3(x),5(y)则元素映射[4 ] [2]将保持这个显示和&#39; x&#39;。
答案 0 :(得分:0)
我不确定我是否完全理解了你想要的东西,但是如果你只是想在地图上标记一个&#39; x&#39;例如,您可以迭代点:
for (int i = 0; i < n; i++) {
map[mg.y][mg.x] = 'x';
}
其中n是点数。 当然,这是在您初始化地图之后。