自己也就能做这种水题了。。
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAX_N 40
int a[MAX_N][MAX_N];
int main(){
int n;
while(scanf("%d", &n) != EOF){
int cnt = 1;
for(int i = 0;i < n; i++){
for(int j = i;j < n;j++){
a[i][j] = cnt++;
}
for(int j = i+1;j < n; j++){
a[j][i] = cnt++;
}
}
for(int i = 0;i < n; i++){
for(int j = 0;j < n; j++){
printf("%d ", a[i][j]);
}
printf("\n");
}
}
return 0;
}