#include <stdio.h> int main() { int a[1000][1000], n, i, j, b = 1, k; scanf("%d", &n); // 输入矩阵的大小 // 填充矩阵 for (i = 0; i < 2 * n - 1; i++) { // 遍历每条对角线 j = i < n ? 0 : i - n + 1; // 起始行 k = i < n ? i : n - 1; // 起始列 // 根据 i 的奇偶性决定填充方向 while (j < n && k >= 0) { if (i % 2 == 0) { a[k][j] = b++; // 按从下到上填充 } else { a[j][k] = b++; // 按从上到下填充 } j++; k--; } } // 输出矩阵 for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf("%d ", a[i][j]); } printf("\n"); } return 0; }