请教一个函数里的问题
void TryPut(int index,int num)
{
int i,j;
if(index>n*n)
{
if(num>nCount)
{
nCount=num;
return;
}
}
else
{
i=index/n;
j=index%n;
if(a[i][j]=='.' && CanPut(i,j)) /*IF*/
{
a[i][j]='T';
TryPut(index+1,num+1); /*A*/
a[i][j]='.'; /*B*/
}
TryPut(index+1,num); /*C*/
}
}
请问在这个函数里,如果IF句成立执行到A进行递归,,如果IF句不成立则执行C进行递归,那么中间的B什么时候执行,也就是B句中i、j怎么取值?我把B句去掉后的输出结果变了,但总想不通B句的作用,希望高人指教,不胜感激!