gpt4 book ai didi

c - 表示具有填充和空白区域的面板的数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:56 26 4
gpt4 key购买 nike

我正在制作一个程序,它会像这样读取输入(水平线和垂直线的坐标):

struct Data {
// the beginning and ending coordinate of a line
int xStart;
int xEnd;
int yStart;
int yEnd;
};
// the dimension of panel on which you draw lines
int panelWidth, panelHeight;
// number of lines drawn on the panel
int numLines;

scanf("%d %d", &panelWidth, &panelHeight);
struct Data data[5];
int j;
int i;

j = 0;
if (scanf("%s", &numLines) == 1)
{
for (i = 0 ; ((i < numLines) && (j < 5)) ; ++i)
{
if (scanf("%d %d %d %d",
&data[j].xStart,
&data[j].yStart,
&data[j].xEnd,
&data[j].yEnd) == 4)
{
j++;
}
}
}

现在我想将这些值放在一个数组中,该数组将代表面板并在面板上绘制所有线条(例如,将值 1 放在有线的地方,将 0 放在单元格为空的地方),这样我然后可以计算这些线构成的所有区域(带零的空间)。

它应该像洪水填充一样工作。

如何制作这样的数组?或者有更好的选择吗?

This is an example of a more complicated input:

27 27 // width, height
7 // number of Lines
10 0 10 10 // xStart, xEnd, yStart, yEnd
0 10 10 10 // xStart, xEnd ...
5 5 15 5
15 5 15 15
5 15 21 15
5 5 5 15
5 20 26 20

最佳答案

Is your question correctly condensed to 'how do I make an array of a certain size in C'?

– Jongware

我猜 Jongware 正在做某事,而您正在尝试动态分配一个 n x m 数组。换句话说,您希望创建一个大小由用户输入的内容决定的数组。

为此,您必须使用“堆”。如果您以前没有在 C 中进行过动态内存分配,我建议您只制作一个大数组(比如 10,000 个元素)并且只使用您需要的任何内容。然后,您只需确保用户不能输入任何大于该值的内容即可。

如果您真的想动态地执行此操作,我们将使用您的 panelWidthpanelHeight 变量。事实上,在 StackOverflow 上有一篇很好的帖子:

Malloc a 2d array in C

希望其中一种方法是您正在寻找的方法。如果没有,澄清你到底在问什么也没什么坏处。您提供了很多信息,但并非所有信息都真正相关。我认为 Jongware 很好地总结了您的问题。

关于c - 表示具有填充和空白区域的面板的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569717/

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