>>416 奇数だけ
#include <stdio.h>

int main(void){
int hairetu[11][11];
int i, n, x, y, next_x, next_y;

printf("数字を入力してください。ただし、10以下の数字を入力にしてください。\n奇数or偶数によって魔方陣を表示します");
scanf("%d",&n);

memset(hairetu, 0, sizeof(hairetu));
if(n%2 && n<12){
x=n/2;y=0;
for(i=1;i<=n*n;i++){
next_x=(x+1)%n;
next_y=(y+n-1)%n;
if(hairetu[next_y][next_x]){
next_x=x;
next_y=(y+1)%n;
}
hairetu[y][x]=i;
x=next_x;
y=next_y;
}
}
for(y=0;y<n;y++){
for(x=0;x<n;x++) printf(" %2d", hairetu[y][x]);
printf("\n");
}

return 0;
}