为什么输出结果后还继续进行而且还输出了个不正确的结果
#include<stdio.h>#include<stdlib.h>
int setQueen[8];
int colset[8];
int up_left[15];
int down_left[15];
int count=-1;
void writeQueen()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if(setQueen[i]==j)printf("Q ");
else printf("# ");
}
printf("\n");
}
}
void addQueen()
{
int i,j;
count ++;
if(count == 8)
{
writeQueen();
return;
}
else
for(i=0;i<8;i++)
{
if(colset[i]&&up_left[i-count+7]&&down_left[i+count])
{
setQueen[count]=i;
colset[i]=0;
printf("%d %d\n",count+1,i);
up_left[i-count+7]=0;
down_left[i+count]=0;
printf("\n");
addQueen();
colset[i]=1;
up_left[i-count+7]=1;
down_left[i+count]=1;
}
}
count --;
return;
}
int main()
{
int i;
for(i = 0;i<8;i++)colset[i]=1;
for(i = 0;i<15;i++)
{
up_left[i]=1;
down_left[i]=1;
}
addQueen();
return 0;
}