gpt4 book ai didi

c - 二维数组操作

转载 作者:行者123 更新时间:2023-11-30 15:07:53 25 4
gpt4 key购买 nike

我正在尝试创建一个(10x10)二维字符数组来存储“”和“T”并像这样显示它

+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+

我写的函数:

  int plant_forest(char forest[][SIZE])
{
int i,j;
forest[0][0] = ' ';
for(i = 0;i<SIZE;i++)
{
for(j=0;j<SIZE;j++)
{
if(forest[i][j]!= forest[0][0])
{
if(forest[i][j-1]!='T' && forest[i-1][j]!= 'T')
{
forest[i][j] = 'T';
}
else
{
forest[i][j] = ' ';
}

}
}
}
return 0;
}

我得到的结果略有不同。

+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
| | |T| |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
|T| | |T| |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
| |T| | |T| |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
|T| |T| | |T| |T| |T|
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| | |T| |T| |
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| | |T| |T|
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| | |T| |
+-+-+-+-+-+-+-+-+-+-+
|T| |T| |T| |T| | |T|
+-+-+-+-+-+-+-+-+-+-+
| |T| |T| |T| |T| | |
+-+-+-+-+-+-+-+-+-+-+

我检查了逻辑,没有发现任何错误。除了 i-1 和 j-1 可以是负数。但这会如何影响执行呢?

仅供引用,我将在这里添加打印功能。但我已经检查过并确定这个函数没有错误

void printBoard(char forest[][SIZE])
{
int i,j;

printf("+-+-+-+-+-+-+-+-+-+-+\n");
for(i = 0; i<SIZE;i++)
{
for(j = 0;j<SIZE;j++)
{
printf("|%c",forest[i][j]);
}
printf("|\n");
printf("+-+-+-+-+-+-+-+-+-+-+\n");

}

}

最佳答案

我认为这可能与数组中数据的存储方式有关。在内存中,数据只是存储sequentially 。自 negative array indexes are allowed in C您的情况的功能结果是森林[1][-1]指向位于单元森林[0][9]中的相同数据,您将注意到它是“T”。

因为森林[0][9](又名森林[1][-1])是“T”,所以你未通过此测试

if(forest[i][j-1]!='T' && forest[i-1][j]!= 'T')

这意味着“”已在单元林[1][0]中注册。防止负指数值,你应该很好。

关于c - 二维数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37823650/

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