#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
int a[][];
while(cin>>n){
memset(a,,sizeof(a));
for(int i=;i<n;i++){
for(int j=;j<n;j++){
scanf("%d",&a[i][j]);
}
}
int x=,y=;
cout<<a[][]<<" ";
for(int i=;i<n;i++){
if(i%==){
cout<<a[++x][y]<<" ";
for(int j=;j<i;j++){
cout<<a[--x][++y]<<" ";
}
}
else {
cout<<a[x][++y]<<" ";
for(int j=;j<i;j++){
cout<<a[++x][--y]<<" ";
}
}
} for(int i=n-;i>=;i--){
if(i%!=){
cout<<a[++x][y]<<" ";
for(int j=i;j>;j--){
cout<<a[++x][--y]<<" ";
}
}
else {
cout<<a[x][++y]<<" ";
for(int j=;j<i;j++){
cout<<a[--x][++y]<<" ";
}
}
}
cout<<a[n-][n-]<<endl;
}
}
对于这道题,刚开始读题的的时候看得眼花缭乱的,其实静下心来仔细观察图就会发现其实很简单的啦,要是看图看不明白就用纸画下方格来,自己模拟怎么走法就好啦,一定用注意发现其中的规律