关于用c语言来做魔方阵

#include <stdio.h>
int main()
{
int i,j,n,a,i1,j1,arr[i][j]; //i,j为行列,n为n阶魔方,a是放置的数 ,i1,j1用于储存原位置
printf("请输入魔方阶数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
arr[i][j]=0;
}
i=1;
j=n/2+1;
arr[i][j]=1;
for(a=2;a<n*n;a++) //放置的数为a
{
i1=i;
j1=j;
i--; //上一行
j++; //下一列
if(i == 0)//没有上一行
{
i=n ;//放置最后一行
}
if(j == n+1) //没有下一列
{
j=1;
}
if (arr[i][j])
{
i=i1+1;
j=j1;
}
arr[i][j]=a;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",arr[i][j]);
}
printf("\n");
return 0;
}
请大家帮我看看输出为什么什么都没有