我有一个由“。”填充的数组。或者是“#”,我需要一种方法来检查array[y+1][x]
是否等于#
,如果是,则执行某些操作并停止循环,否则增加y
。首先我没有和&在lavirint
之前它给了我一个错误,它无法比较指针和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++;
}
答案 0 :(得分:3)
"#"
是const char[2]
类型的字符串文字,并且会衰减为const char*
。
您需要'#'
这是一个角色:
if (lavirint[y+1][x] == '#' || ... )