Я пытаюсь подсчитать количество символов в 2D-сетке с использованием 2 for
петель. Код выглядит следующим образом:Подсчитайте количество символов в двумерной сетке C
int number_of_boxes(int player, int height, int width, char**gameBoard){
int boxCount, i , a;
for(i=0; i < (height*2) + 1 ; i++){
for (a = 0 ; a < (width * 2) + 1 ; a++){
if(gameBoard[i][a] == (char)(player + 64)) boxCount++;
}
}
return boxCount;
}
переменной player
является индексом для каждого игрока, но в сетке они показывают ASCII символы.
1 = A, 2 = B и т. Д., Добавив 64 к индексу и обрабатывая его как char
. Состояние if
предназначено для проверки каждого символа в массиве массивов для символа ASCII и добавления в счетчик, если он находит экземпляр одного.
По какой-то причине if
утверждение в этой функции путь проходит слишком много раз, и функция возвращает 122
или 120
когда только возможно максимум 4
. Является ли мое заявление if
неправильным?
boxCount неинициализирован. Он содержит стоимость мусора. –
Ах, это исправлено, не могу поверить, что я пропустил это, спасибо. –
вместо использования 65 ... используйте 'A'. Делает код более понятным –