是哪里错了
#include<bits/stdc++.h>
using namespace std;
int n;
int a[40][40],h,l;
int main(){
cin >> n;
h = 1;
l = n/2+1;
a[h][l] = 1;
for(int i=2;i<=n*n;i++){
if(h==1&&l!=n) h = n,l = l+1;
if(h!=1&&l==n) h = h-1,l = 1;
if(h==1&&l==n) h = h+1;
if(h!=1&&l!=n){
if(a[h-1][l+1]==0&&h>1&&l<n){
h = h-1; l = l+1;
}else{
h = h+1;
}
}
a[h][l] = i;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}