试构造并输出以上两种形式的n阶对称方阵。
#include<stdio.h>
#include<math.h>
void main()
{
int i,j,a[30][30],n,m;
printf("请确定方阵阶数n:");
scanf("%d",&n);
if(n%2==0)
{
printf("请输入奇数");return;
}
m=(n+1)/2;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i==j||(i+j)/2==m)
a[i][j]=0;
if(i<j&&i+j<n+1)
a[i][j]=i;
if(i>j&&i+j<n+1)
a[i][j]=j;
if(i>j&&i+j>n+1)
a[i][j]=m-abs(m-i);
if(i<j&&i+j>n+1)
a[i][j]=m-abs(m-j);
}
printf("%d阶对称方阵:\n",n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%3d",a[i][j]);
printf("\n");
}
return;
}