用个二维数组做了个螺旋矩阵,
#include<iostream>
#include <iomanip>
using namespace std;
void main{
int a[5][5];//一个五行五列的二维数组
int length = 4;
int num = 1;//螺旋矩阵的起始值
int b = 0;
int i = 0;
int j = 0;
for (int p = 0; p < 2; p++)//循环次数
{
for (; j < length; j++)//从左往右,第一圈[0][0]——[0][3]
{
a[i][j] = num++;
}
for (; i < length; i++)//从上往下,第一圈[0][4]——[3][4]
{
a[i][j] = num++;
}
for (; j > b; j--)//从左往右,第一圈[4][4]——[4][1]
{
a[i][j] = num++;
}
for (; i > b; i--)//从下往上,第一圈[4][0]——[1][0]
{
a[i][j] = num++;
}
i++;
j++;
b++;
length--;
}
a[i][j] = num++;//这个时最中间的那个数的值,也就是[2][2],
for (i = 0; i < 5; i++)//把数组的值都遍历出来
{
for (j = 0; j < 5; j++)
{
cout << setw(2) << a[i][j] << ends;
}
cout << endl;
}
}
这个二维数组呢,我们让它循环两次,第一圈上右下左上以四个值为一个for循环,第二圈以两个值来做一个for循环,所以说循环两次就可以啦,这样的话,就差中间那个[2][2]是没有值的啦,所以要我们要单独给它,螺旋起始值为1,每次循环这个值都会加一,一直到结束,就可以得到一下结果啦。
还有的就是呢,我这个只能做个五行五列的螺旋矩阵,这个是可以完善下弄成个n*n的螺旋矩阵的