intmain(){ int arr[5][5];//定义一个5x5的数组 int a=0, b=4,c=4,d=0;//定义了4个边界 //其中a为上边界,b为右边界,c为下边界,d为左边界 int item = 1;//定义一个元素,用来给数组赋值 while (a<=c&&d<=b) { //上行 for (int i = d; i <= b; i++) { arr[a][i] = item; item++; } a++;//上边界缩小
//右列 for (int i = a; i <= c; i++) { arr[i][b] = item; item++; } b--;//右边界缩小
//下行 for (int i = b; i >= d; i--) { arr[c][i] = item; item++; } c--;//下边界缩小
//左列 for (int i = c; i >= a; i--) { arr[i][d] = item; item++; } d++;//左边界缩小 }
//输出数组 for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { printf("%3d", arr[i][j]); } printf("\n"); }