// 程序员面试题精选100题(51)-顺时针打印矩阵.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; #define M 9 #define N 4 int _tmain(int argc, _TCHAR* argv[]) { int arr[M][N]; int all=0; int i,j,iup=0,idown=M-1,jleft=0,jright=N-1; while(all<M*N) { i=iup;//small for (j=jleft;j<=jright;j++) { arr[i][j]=all++; } iup++; j=jright; for (i=iup;i<=idown;i++) { arr[i][j]=all++; } jright--; i=idown; for (j=jright;j>=jleft;j--) { arr[i][j]=all++; } idown--; j=jleft; for (i=idown;i>=iup;i--) { arr[i][j]=all++; } jleft++; } for (int ik=0;ik<M;ik++) { for (int jk=0;jk<N;jk++) { if (arr[ik][jk]<10) { cout<<" "; } cout<<arr[ik][jk]<<" "; } cout<<endl; } system("pause"); return 0; } 都是按照蛇形的方式遍历,我以赋值代替输出,貌似比给的答案简单。蛇年做出蛇题,感觉今年要走好运呀。