>5
対角線の和は考慮しない、なんちゃってなやつなら、こんな風に
作れるぞ。
なんちゃってだから、こんなん提出したら、おこられるかもな。
全角の空白使ってるから、半角の空白に変換してくれ。


#include <stdio.h>

void main(void)
{
  int i, j, n;
  int a[7][7] = {{0, 0, 0, 0, 0, 0, 0},
          {0, 0, 0, 0, 0, 0, 0},
          {0, 0, 6, 1, 8, 0, 0},
          {0, 0, 7, 5, 3, 0, 0},
          {0, 0, 2, 9, 4, 0, 0},
          {0, 0, 0, 0, 0, 0, 0},
          {0, 0, 0, 0, 0, 0, 0}};
  int x[10] = {0, 3, 2, 4, 4, 3, 2, 2, 4, 3};
  int y[10] = {0, 2, 4, 3, 4, 3, 2, 3, 2, 4};

  printf("input n: ");
  scanf("%d", &n);

  if (x[n] == 3) {
    for (i = 2; i < 5; i++) { a[i][5] = a[i][2]; }
  }
  if (x[n] == 4) {
    for (i = 2; i < 5; i++) { a[i][1] = a[i][4]; }
    x[n] = 1;
  }
  if (y[n] == 3) {
    for (i = 1; i < 6; i++) { a[5][i] = a[2][i]; }
  }
  if (y[n] == 4) {
    for (i = 1; i < 6; i++) { a[1][i] = a[4][i]; }
    y[n] = 1;
  }
  for (i = y[n]; i < y[n] + 3; i++) {
    for (j = x[n]; j < x[n] + 3; j++) { printf("%2d", a[i][j]); }
    putchar('\n');
  }
}