我有一个由“。”填充的数组。或“#”,并且我需要一种检查是否array[y+1][x]
等于的方法#
,如果是则执行某些操作并停止循环,否则增加y
。首先,我在没有&之前编写了它,lavirint
并且给了我一个错误,它无法比较指针和an int
,这使我感到困惑,因为“#”不应该是int
?
问题是循环中的第一个条件永远不会发生,尽管应该发生,并且循环在以下情况下停止
y==n
也许我只是愚蠢的而忽略了一些东西,但是我真的很感谢对此的解决方案。
char lavirint[500][500];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%c", &lavirint[i][j]);
}
}
bool n_povecava = true;
...
while(n_povecava)
{
if(&lavirint[y+1][x] == "#" || y==n)
{
k--;
m_povecava = true;
n_povecava = false;
}
else
y++;
}
"#"
是类型的字符串文字,const char[2]
并衰减为const char*
。
您需要'#'
哪个字符:
if (lavirint[y+1][x] == '#' || ... )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句