从结构体中读取数据到2d数组c中



我正在尝试使用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为点的个数。当然,这是在初始化映射之后。

相关内容

  • 没有找到相关文章

最新更新