#include <iostream>
#include <string.h>
using namespace std;
#define MAX 100
int A[MAX][MAX];
void printMatrix(int n)
{
memset(A,0,sizeof(int)*MAX*MAX);
int sum=0;
A[0][0]=++sum;
int i=0,j=0;
while(sum<n*n)
{
while (j<n-1 && A[i][j+1]==0)
{
A[i][++j]=++sum;
}
while (i<n-1 && A[i+1][j]==0)
{
A[++i][j]=++sum;
}
while (j>0 && A[i][j-1]==0)
{
A[i][--j]=++sum;
}
while(i>0 && A[i-1][j]==0)
{
A[--i][j]=++sum;
}
}
for (int i=0;i<n;++i)
{
for (int j=0;j<n;++j)
{
printf("%3d ",A[i][j]);
}
printf("\n");
}
}
int main()
{
printMatrix(4);
}2013.6.14蛇形矩阵
最新推荐文章于 2025-08-11 12:46:57 发布
本文介绍了一个使用C++实现的螺旋填充矩阵算法,该算法能够按螺旋顺序填充一个n×n的矩阵,并打印出最终结果。通过四个while循环分别处理上、右、下、左四个方向的填充逻辑,实现了矩阵的螺旋填充。
1万+

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



