杭州恩牛和义牛的关系:螺旋矩阵 流程图

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 18:55:01
想了很久也没想明白!

你是要生成螺旋矩阵的程序么?
我用C++写了一个.很粗糙,只是基本实现输出螺旋矩阵,还有很多没完善的地方,可读性也不好,你自己琢磨一下,别骂我啊..

#include <iostream>
using namespace std;
void fun(int **a,int n)
{
int s(0),r(0),c(0);
int t(n);
for(int i=0;i<t/2;i++)
{
for(int j=1;j<n;j++)
a[r][c++]=++s;
for(j=1;j<n;j++)
a[r++][c]=++s;
for(j=1;j<n;j++)
a[r][c--]=++s;
for(j=1;j<n;j++)
a[r--][c]=++s;
r++;
c++;
n-=2;
}
if(t%2)
a[r][c]=++s;
for(i=0;i<t;i++)
{
for(int j=0;j<t;j++)
{
cout.width(5);
cout<<a[i][j];
}
cout<<endl;
}
}

void main()
{
int n(0);
while(n<=0)
{
cout<<"请输入一个正整数,程序将生成该数平方的螺旋矩阵:";
cin>>n;
}
int **a=NULL;
a=new int *[n];
for(int i=0;i<n;i++)
a[i]=new int[n];
for(i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j]=0;
fun(a,n);
delete []a;
}