看着这样的"回”形图案你晕吗?让我们不用数组,来做出它。
输入格式:n。正方形的边长
输出格式:"%3d"
边长为 n 的数字回形方阵。
#include<stdio.h>
int main(void){
int n,a[100][100],i=0,j=0,num=1,k,row,temp;
scanf("%d",&n);
temp=n%2;
temp*=-1;
temp+=n;
for(k=1;k<=temp/2;k++){
while(j!=n-k){
a[i][j]=num;
num+=1;
j+=1;
}
while(i!=n-k){
a[i][j]=num;
num+=1;
i+=1;
}
while(j!=k-1){
a[i][j]=num;
num+=1;
j-=1;
}
while(i!=k-1){
a[i][j]=num;
num+=1;
i-=1;
}
j+=1;
i+=1;
}
if(n%2!=0) a[(temp+1)/2][(temp+1)/2]=n*n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
}