void EightQueen(int *path,int k,int* count)
{
	if (k==8)
	{
		for (int i=0;i<8;i++)
		{
			printf("(%d,%d) ",i,path[i]);
		}
		printf("\n");
		(*count)++;
		return ;
	}

	for (int i =0 ;i<8;i++)
	{
		bool flag_2=true;
		//判断列
		for (int j=0;j<k;j++)
		{
			if (path[j]==i)
			{
				flag_2 = false;
				break;
			}
		}
		//判断对角线
		for (int j=0;j<k;j++)
		{
			if (abs(j-k) == abs(path[j]-i))
			{
				flag_2 = false;
				break;
			}
		}
		
		if (flag_2)
		{
			path[k] = i;
			EightQueen(path,k+1,count);
		}
	}

}

main函数为:

int count=0;
	int *path = new int[100];
	memset(path,0,400);
	EightQueen(path,0,&count);

	printf("%d\n",count);