还有好多RE的
#include <stdio.h>
int a[42][42];
int main(void) {
int n;
scanf("%d", &n);
int u = 0;
int v = (n - 1) / 2;
a[u][v] = 1;
for (int i = 2; i <= n * n; i++) {
while (u == 0 && v != n - 1) {
u = n - 1;
v++;
a[u][v] = i;
continue;
}
while (u != 0 && v == n - 1) {
v = 1;
u--;
a[u][v] = i;
continue;
}
while (u == 0 && v == n - 1) {
u++;
a[u][v] = i;
continue;
}
while (u != 0 && v != n - 1) {
if (a[u - 1][v + 1] == 0) {
u = u - 1;
v++;
a[u][v] = i;
} else {
u++;
a[u][v] = i;
}
continue;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
printf("%d ", a[i][j]);
printf("\n");
}
return 0;
}