gpt4 book ai didi

c - 将数据从struct读取到二维数组c中

转载 作者:行者123 更新时间:2023-11-30 17:37:38 25 4
gpt4 key购买 nike

我正在尝试使用二维数组将坐标绘制到 map 上。坐标数据已由用户输入并保存在结构中。这是从我的主程序中取出的一段代码。

#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';
~~^~

我想要实现的目标是获取结构中保存的坐标,然后将其分配给数组中的正确元素,即如果用户输入 3(x),5(y),则元素映射[4][ 2] 将保留此显示和“x”。

最佳答案

我不确定我是否完全理解了您想要的内容,但是如果您只想用“x”标记 map 上的点,您可以迭代这些点:

for (int i = 0; i < n; i++) {
map[mg.y][mg.x] = 'x';
}

其中 n 是点数。当然,这是在你初始化 map 之后。

关于c - 将数据从struct读取到二维数组c中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com