我正在尝试使用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添加到索引中,并将其视为A
char
if
状态打算检查ASCII字符数组中的每个字符,如果发现一个实例,则将其添加到计数器中。由于某种原因,这个函数中的
if
语句传递的次数太多,并且当唯一可能的最大值是122
时,函数返回120
或4
。我的陈述有错吗? 最佳答案
您尚未初始化boxCount。
int boxCount, i , a;
因此boxCount当前存储一些垃圾值我想这就是为什么假设if语句运行多次的原因。请尝试初始化boxCount。
int boxCount=0, i , a;