如下程序报如下错误,如何解决?急!
#include<iostream>
#include<cstdio>
#include<cmath>
#include<vector>
#define MAXN 1000
#define cfor(i,a,b) for(int i=(a);i<(b);i++)
using namespace std;
int main(){
int n;
cin>>n;
vector< vector<int> >ans(n,0);
cfor(i,0,n)ans[i].resize(n,0);
int m=pow(n,2);
for(int i=0,j=0,k=1;k<=m;){
while(i<n&&j<n&&k<=m&&ans[i][j]==0){
ans[i][j]=k;
i++;
k++;
}
i--;
while(i<n&&j<n&&k<=m&&ans[i][j]==0){
ans[i][j]=k;
j++;
k++;
}
j--;
while(i<n&&j<n&&k<=m&&ans[i][j]==0){
ans[i][j]=k;
i--;
k++;
}
while(i<n&&j<n&&k<=m&&ans[i][j]==0){
ans[i][j]=k;
j--;
k++;
}
}
cfor(i,0,n){
cfor(j,0,n){
printf("%3d",ans[i][j]);
}
printf("\n");
}
//cout<<a[ans]<<endl;
return 0;
}

