c语言输出魔方阵
#include<stdio.h>
#define N 3
int main(){
//输出魔方阵
int a[N][N],r=0,c=N/2;
for (int i=0;i<N;i++){
for(int j=0;j<N;j++)
a[i][j]=0;
}
a[r][c]=1;
for(int i=2;i<=N*N;i++){
// t1=r;t2=c;
if(c==N-1&&r==0){
r+=1;
}else if(c==N-1){
c=0;
r-=1;
}else if(r==0){
r=N-1;
c+=1;
}else{
r-=1;
c+=1;
}
if(a[r][c]!=0){
// r=t1+1;
// c=t2;
r+=2;
c-=1;
}
a[r][c]=i;
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++)
printf("%5d",a[i][j]);
printf("\n");
}
return 0;
}