Почему условное выражение (выделенное в приведенном ниже коде) обнаруживает совпадение для значений, которые не определены в инициализированном 2d массиве...?
//initialization
int validtracks[17][2] = {{1,1}, {1,3}, {1,6},{2,3},{2,6},{3,4},{3,6},{3,8},
{4,2},{4,3},{4,7},{5,3},{5,5},{6,1}, {6,3},{7,1},{7,3}};
//main code
while (matchtrack == 0)
{
rndint = rand() % 7 + 1;
for (int r = 1; r < 18; r++)
{
if (validtracks[r][2] == rndint && validtracks[r][1] ==
rndtracks[1] && matchtrack == 0)
{
matchtrack = 1;
}
}
}
What I have tried:
I have narrowed the problem down to the conditional:
if (validtracks[r][2] == rndint && validtracks[r][1] ==rndtracks[1] && matchtrack ==0)
{
matchtrack = 1;
}
For some reason it's detecting a match with elements in the array, when it shouldn't be:
//initialized array
int validtracks[17][2] = {{1,1}, {1,3}, {1,6},{2,3},{2,6},{3,4},{3,6},{3,8},
{4,2},{4,3},{4,7},{5,3},{5,5},{6,1}, {6,3},{7,1},{7,3}};