#include <stdio.h> int main() { unsigned int N = 0; unsigned int result[100][100] = {}; unsigned int i,row,column; scanf("%u", &N); // 生成二维蛇形数组 for (row=0; row<N; ++row) { for (column=0; column<N-row; ++column) { if (column==0) { // 第一列先算出来 if (row==0) { // result[0][0]肯定为1 result[row][column] = 1; } else { // 其他的行首值 = 上一行的行首值 + 当前行号 result[row][column] = result[row-1][column] + row; } } else { // 其他的行列值 = 当前行上一列的值 + 当前行号 + 当前列号 + 1 result[row][column] = result[row][column-1] + row + column + 1; } } } // 按格式打印 for (row=0; row<N; ++row) { for (column=0; column<N-row; ++column) { printf("%u", result[row][column]); if (column != N-row-1) { printf(" "); } else {} } printf("\n"); } return 0; }