哪位高手帮小弟我看上代码中哪有有关问题

谁帮我看下代码中哪有问题。

#include<iostream>
using namespace std;
#define N 8;
int a[9]={0};

bool pass(int n)
{
int i=1;
while(i<n)
{
if(a[i]==a[n]||(abs(a[i]-a[n])==abs(i-n)))
{
return false;
}
i++;
}
return true;


}

void print()
{
int j=1;
while(j<=8)
{
cout<<a[j++]<<' ';
}
cout<<endl;
}

void queen(int k)
{
int count=0;
while(k>=1)
{
a[k]++;
while(!pass(k)&&a[k]<=N)
{
a[k]++;
}
if(a[k]<=N)
{
  if(k==N)
  {
  count++;
  cout<<count<<endl;
  print();
  }
  else 
{
k++;
}
  }
else
{
a[k--]=0;
}
}



}

int main()
{
queen(1);
return 0;

}


------解决方案--------------------
C/C++ code

#define N 8 //去掉后面的;