我正在尝试使用2for循环计算二维网格中有多少个字符代码如下所示:

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添加到索引中,并将其视为Acharif状态打算检查ASCII字符数组中的每个字符,如果发现一个实例,则将其添加到计数器中。
由于某种原因,这个函数中的if语句传递的次数太多,并且当唯一可能的最大值是122时,函数返回1204。我的陈述有错吗?

最佳答案

您尚未初始化boxCount。

 int boxCount, i , a;

因此boxCount当前存储一些垃圾值我想这就是为什么假设if语句运行多次的原因。请尝试初始化boxCount。
  int boxCount=0, i , a;

08-06 14:47