CCF 201412-2 Z字型扫描 #include<iostream> #include<stdlib.h> #include<memory.h> using namespace std; #define Right 1 #define Down 1 int main() { int n =0; cin>>n; int** a = (int**)malloc(sizeof(int*)*n); for(int i=0;i<n;i++) { a[i] = (int*)malloc(sizeof(int)*n); } for(int i=0;i<n;i++) { for(int j =0;j<n;j++) { cin>>a[i][j]; } } int i=0,j =0,k=1; cout<<a[i][j]<<" "; while( k<n*n) { if(i ==0 && j<n-1) { j++; cout<<a[i][j]<<" "; k++; while(j >0) { i++;j--; k++; cout<<a[i][j]<<" "; } } if(j==0 && i<n-1) { i++; cout<<a[i][j]<<" "; k++; while(i >0) { i--;j++; k++; cout<<a[i][j]<<" "; } } if(i ==n-1 && j>=0) { j++; cout<<a[i][j]<<" "; k++; while(j <n-1) { i--;j++; cout<<a[i][j]<<" "; k++; } } if( j ==n-1 && i<n-1) { i++; cout<<a[i][j]<<" "; k++; while(i <n-1) { i++;j--; cout<<a[i][j]<<" "; k++; } } } return 0; }