N Queens backtracking

#include <bits/stdc++.h>
using namespace std;
bool safeq(int q[][15],int i,int j ,int n)
{
for(int k=i-1;k>=0;k–)
{
if(q[k][j]==1)
return false;
}
for(int k=i-1,l=j-1;k>=0,l>=0;k–,l–)
{
if(q[k][l]==1)
return 0;
}
for(int k=i-1,l=j+1;k>=0,l<n;k–,l++)
{
if(q[k][l]==1)
return 0;
}
return 1;
}
void rec(int i,string o,int n,int q[][15],int &fl)
{
if(i==n)
{
fl++;

    return;
}
for(int j=0;j<n;j++)
{
    char d=i+48,e=j+48;
    
    if(safeq(q,i,j,n)){
    q[i][j]=1;
    rec(i+1,o+d+"-"+e+", ",n,q,fl);
    q[i][j]=0;
    }
}

}
int main()
{
int n;
cin>>n;
int q[15][15];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
q[i][j]=0;
}
int fl=0;
rec(0,"",n,q,fl);
cout<<fl;
}

Can somebody please tell me why my code is not giving correct output.
As per the question I have to calculate no. of n queen combinations possible.