#include<iostream>
using namespace std;
#include<stdio.h>
#define M 11
void show(int arr[][M], int size)
{
for(int index = 0x00; index < size; index++)
{
for(int j = 0x00; j < size;j++)
std::cout<<arr[index][j]<<" ";
std::cout<<std::endl;
}
}
void set_val(int arr[M][M], int& sum, int x, int y)
{
arr[x][y] = sum++;
}
int main(void)
{
int arr[M][M] = {0x00};
int x = 0x00;
int y = 0x00;
int sum = 0x01;
int start = 0x00;
int stop = M;
while(1)
{
while(y >= start && y < stop)
{
set_val(arr,sum,x,y);
y++;
}
if(sum >= M * M)
break;
y--;
x++;
while(x >= start && x < stop)
{
set_val(arr,sum,x,y);
x++;
}
y--;
x--;
while(y >= start && y < stop)
{
set_val(arr,sum,x,y);
y--;
}
y++;
x--;
start++;
stop--;
while(x >= start && x < stop)
{
set_val(arr,sum,x,y);
x--;
}
x = start;
y = start;
}
show(arr,M);
printf("\n");
}
示例结果: