您的位置:首页 > 编程语言 > C语言/C++

螺旋矩阵--由外向内旋转输出

2017-05-20 16:02 288 查看
```
/*
算法--螺旋矩阵-由外向内旋转 :从首坐标开始顺时针依次增大。
1  2  3  4  5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
*/
#if 0
#include <iostream>
using namespace std;

#define MAX 5
int a[MAX][MAX]; //保存5x5的矩阵

void Fun(int n)
{
int m = 1;
for(int i = 0; i < MAX/2; i++)//MAX/2表示有多少圈
{
for(int j = 0; j < MAX-i; j++)//上
{
if(a[i][j] == 0)
a[i][j] = m++;
}
for(int j = i+1; j < MAX-i; j++)//右
{
if(a[j][n-i-1]==0)
a[j][n-i-1] = m++;
}
for(int j = MAX-i-1; j > i; j--)//下
{
if(a[n-i-1][j]==0 )
a[n-i-1][j] = m++;
}
for(int j = MAX-i-1; j > i; j--)//左
{
if(a[j][i]==0 )
a[j][i] = m++;
}
}
if(MAX%2==1 )
a[MAX/2][MAX/2] = m;
}

int main()
{
for(int i = 0; i < MAX; ++i)
{
for(int j = 0; j < MAX; ++j)  //初始化矩阵
{
a[i][j] = 0;
}
}
Fun(MAX);
for(int i = 0; i < MAX; ++i)
{
for(int j = 0; j < MAX; ++j)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
#endif


“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 螺旋矩阵-C++