#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
#define M 10
void main()
{
int a[M][M] = {0};
int data = 1;
int N = 0;
scanf("%d",&N);
printf("N is %d\n",N);
for (int i = 0, j = 0, k = 0; k < (N + 1) / 2;k++)
{
while (j<N-k)//控制层数
{
a[i][j] = data;//赋值
j++;//往右边移动
data++;
}
j--;//退回
i++;//转向
while (i<N-k)
{
a[i][j] = data;
i++;
data++;
}
i--;
j--;//退回转向
while (j >k-1 )//减去一层
{
a[i][j] = data;
j--;
data++;
}
j++;
i--;
while (i>k)
{
a[i][j] = data;
i--;
data++;
}
i++;
j++;
}
//打印输出
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
system("pause");
}
时间: 2024-10-30 05:24:24