计算2D网格C中的char数

时间:2015-08-21 03:41:22

标签: c arrays char ascii

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

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并将其视为charif状态打算检查ASCII字符的数组数组中的每个字符,如果找到一个实例,则添加到计数器。

由于某种原因,此函数中的if语句传递的次数太多,当唯一可能的最大值为122时,函数返回1204 。我的if声明错了吗?

2 个答案:

答案 0 :(得分:2)

您尚未初始化boxCount。

 int boxCount, i , a;

因此,boxCount目前存储一些垃圾值。我想这就是为什么你假设if语句运行很多次。尝试初始化boxCount。

  int boxCount=0, i , a;

答案 1 :(得分:0)

您错过了初始化boxCount

替换

int boxCount, i , a;

int boxCount=0, i , a;

由于未初始化值的递增未定义