原题链接+++++++++++++++++++++++++++
#include<stdio.h>
int main()
{
int n, i, j, k = 1;
int t = 0; //此处的t是用来记录圈数
int a[10][10] = { 0 };
scanf("%d", &n);
while (k <=n*n ) //顺时针走,k是元素个数,达到n*n时退出循环
{
for (i = t;i < n - t;i++) //向右赋值
a[t][i] = k++;
for (i = t + 1;i < n - t;i++) //向下赋值
a[i][n - t - 1] = k++;
for (i = t + 2;i <= n - t;i++) //向左赋值
a[n - t - 1][n - i] = k++;
for (i = t + 2;i < n - t;i++) //向上赋值
a[n-i][t] = k++;
t++;
}
for (i = 0;i < n;i++) //输出
{
for (j = 0;j < n;j++)
{
printf("%2d ", a[i][j]);
}
printf("\n");
}
return 0;
}
该程序使用C语言实现了一个功能,即按照顺时针方向填充一个n×n的矩阵。通过四个嵌套循环,它从中心开始,依次向右、下、左、上赋值,直到所有元素都被填充。最后,程序打印出填充后的矩阵。

2215

被折叠的 条评论
为什么被折叠?



