У меня есть массив, который заполняется либо «.». или «#», и мне нужен способ проверить, равен ли 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++;
}
_'for (INT I = 1, г <= п, я ++) '_ Массивы индексируются '0' до 'N-1', где «N» - это размер. –
Не следует использовать _lavirint [y + 1] [x] _ вместо _ & lavirint [y + 1] [x] _ –