#include <stdio.h> int main(){ int arr[5][5]={1}; int a1=0,a2=4,i=1; while(a1<=4&&a2>=0){ if(a1==0&&a2>0){ arr[a1][a2--] = i++; arr[a1++][a2++]=i++; while(a2!=4){ arr[a1++][a2++]=i++; } } else if (a2==4){ arr[a1++][a2]=i++; arr[a1--][a2--]=i++; while(a1!=0){ arr[a1--][a2--]=i++; } } else if(a2==0){ arr[a1++][a2]=i++; arr[a1++][a2++]=i++; while(a1!=4){ arr[a1++][a2++]=i++; } } else if(a1==4){ arr[a1][a2--]=i++; arr[a1][a2]=i++; if(arr[a1][a2]==25) { break; } a1--;a2--; while(a2!=0){ arr[a1--][a2--]=i++; } } } for(int i=0;i<5;i++){ for(int j=0;j<5;j++){ printf("%3d ",arr[i][j]); } printf("\n"); } }
设立两个指针,来回地走